标准库(内置模块)

time与datetime 模块

时间表示方式

1.时间戳

2.格式化的字符串

3.元组形式

时间戳就是一个秒数

x=time.time(),从1970年1月1日0时0分0秒到现在的秒数

x/3600/24/365:年数,1970+年数,今年(近似)

time.struct_time():dst时区,0代表不是夏令时

time.timezone:时区

time.altzone:夏令时时区

time.daylight:是否夏令时

time.time():时间戳

time.sleep(i):睡眠,秒

time.gmtime([seconds]):传入时间戳,转换为元组(tuple)格式,转换成UTC格式时间

x=time.localtime([seconds]):转换为本地时间

x.tm_year,x.tm_mon……

time.mktime([):转换成时间戳形式

time.strftime():格式化为字符串

time.strptime():字符串转换为time

time.asctime():将元组时间转换为字符串

time.ctime():将时间戳转换为字符串

datetime.datetime.now():获取当前时间

datetime.datetime.now()+datetime.timedelta(3):3天后,datetime.timedelta()不能单独使用,必须与now一起使用

datetime.datetime.now()+datetime.timedelta(hours=3)

random模块

random.random():随机浮点数,[0,1)

random.randint(1,3):[1,3]

random.randrange(1,3):[1,3)

random.choice(“hello”):字符串、列表、元组参数

random.sample(“hello”,2):区间为2

random.uniform(1,10):1到10之间的浮点数,[1,10)

random.shuffle([]):打乱列表顺序(洗牌)

os模块

模拟操作系统的操作指令

os.getcmd():获取当前的操作目录(pwd)

os.chdir(目录):修改目录,os.chdir(r”C:\Users”),r取消转义符\

os.curdir:返回当前目录

os.pardir:返回上级目录

os.makedirs(r”C:\a\b\c\d”):递归创建目录,没有a,b,c目录也可以创建

os.removedir(r”C:\a\b\c\d”):递归删除目录,只能删除空文件夹

os.mkdir(‘dirname’):创建单级目录

os.rmdir(‘dirname’):删除单级目录,最后一级目录

os.listdir(‘dirname’):列出目录下内容,列表形式

os.remove():删除文件

os.rename(‘oldname’,’newname’):文件改名

os.stat(r’file’):查看文件/目录信息

os.sep:输出操作系统特定的路径分隔符

os.linesep:输出当前操作系统使用的行终止符

os.pathsep:输出用于分割文件路径的字符串,windows为”;”,例如环境变量中path的分隔符

os.name:输出当前系统平台

os.system(‘bash command’):执行当前系统命令

os.envron:获取环境变量,字典形式

os.path.abspath():获得当前绝对路径

os.path.split(path):将path分割成目录和文件名,返回二元元组

os.path.dirname(path):获得当前路径的目录

os.path.basename(path):返回根路径

os.path.exists(path):判断路径是否存在

os.path.isabs(path):是否绝对路径

os.path.isfile(path):是否文件

os.path.isdir(path):是否目录

os.path.join(path1[,path2[,…]]):合并路径

os.path.getatime(path):返回path所指向文件或目录的最后存取时间

os.path.getmtime(path):返回path所指向文件或目录的最后修改时间

sys模块

sys.argv:命令行参数list,第一个元素是程序本身路径

sys.version:退出程序,0为正常退出

sys.exit(0):获取Python解释程序的版本信息

sys.path:返回模块搜索路径,初始化时使用PYTHONPATH环境变量的值

sys.maxint:最大int值

sys.stdout.write(“please:”):

val = sys.stdin.readline()[:-1]

shutil模块

用来拷贝文件,压缩包

shutil.copyfileobj(src,dst[,length]):需要自己打开文件

shutil.copyfile(src,dst):输入文件路径即可

shutil.copymode(src,dst):仅拷贝权限,内容、组、用户均不变

shutil.copystat(src,dst):拷贝权限

shutil.copy(src,dst):拷贝文件和权限

shutil.copy2(src,dst):拷贝文件和信息

shutil.copytree(src,dst):拷贝目录及里面所有内容

shutil.rmtree(src):删除目录

shutil.move(src,dst):移动文件

shutil.make_archive(base_name,format,…):

base_name:压缩包名(可以包含路径)

format:压缩包类型,zip,tar,bztar,gztar

root_dir:要压缩的文件夹路径

owner:用户,默认当前

group:组,默认当前

logger:记录日志

zipfile模块

z = zipfile.ZipFile(name,”w”)

z.write(…)

z.clost()

json、pickle、shelve模块

序列化

将简单的k,v通过文件持久化,可支持pickle支持的python的数据格式

多次dump和load

d = shelve.open(file):打开一个文件

d[key]=v

d[key2]=v2

d.close()

d.get(key)

d.items()

xml处理

import xml.etree.ElementTree as ET

tree = ET.parse(xmlfile)

root = tree.getroot() #内存对象

print(root.tag) #根标签

# 遍历

for child in root:

print(child.tag, chile.attrib)

for I in child:

print(i.tag, i.text,i.attrib)

for node in root.iter(‘year’):

print(node.tag,node.text)

// update and insert

for node in root.iter(‘year’):

new_year=int(node.text)+1

node.text=str(new_year)

node.set(“updated”,”yes”)

tree.write(xmlfile)

//delete

for country in root.findall(‘country’):

rank = int(country.find(‘rank’).text)

if rank > 50:

root.remove(country)

tree.write(xmlfile)

//create xmlfile

ET.Element(str):根节点

ET.SubElement(parent,str,attrib={})…

PyYAML模块

处理yaml文档

导入一个模块,使用load加载为字典数据

 

configparser模块

import configparser

config = configparser.ConfigPareser()

config是一个字典

config.write(configfile)

config.read(configfile)

config.defaults

config.sections()

config.remove_section(node)

hashlib模块

用来hash密码,md5等,提供SHA1,SHA224,SHA256,SHA384,SHA512,MD5算法

m=hashlib.md5()

m.update(byte)

m.update(byte2)

print(m.hexdigest()) #十六进制格式,是将bstr+bstr2两个拼起来的格式

#双重加密,消息加密

import hmac

h = hmac.new(bkey,bmessage)

print(h.digest()) #s十进制格式

中文必须转换成byte格式,中文.encode(encoding=”utf-8)

Subprocess模块

调用Linux命令

logging模块

logging.warning(str)

logging.critical(str)

info,debug,error

info,debug默认不打印,使用类似开关的方式确定是否输出

longing.basicConfig(file=a_file,leval=logging.DEBUG)

longing.basicConfig(file=a_file,leval=logging.DEBUG,format = “%(asctime)s %(message)s”, datefmt=”%m/%d/%Y %I:%M:%S %p))

通过各种参数输出调用的模块名、文件名、函数名、行、时间等,实现系统的调试功能

logger:为每种输出logger起一个名字

handler:确定输出位置

formatter:确定输出格式

同时输出到不同的位置

LOG=logging.getLogger(name)

LOG.setLevel(logging.DEBUG)

stream=logging.StreamHandler()

stream.setLevel(level)

stream_formatter=logging.Formatter(formatter)

stream.setFormatter(stream_formatter)

fileHandler=logging.FileHandler(file)

fileHandler.setLevel(level)

fileHandler_formatter=logging.Formatter(formatter)

fileHandler.setFormatter(fileHandler_formatter)

LOG.addHandler(stream)

LOG.addHandler(fileHandler)

LOG.error(message)

LOG.debug(message)

根据时间或文件大小切割日志文件

logging.handles.TimedRotatingFileHandler

logging.handlers.RotatingFileHandler

根据时间切割日志文件

logging.setLevelName

Re模块

正则表达式

import re

a=re.match(formatter,str):从头开始匹配

a.group():结果

a.groups():生成元组

“.”:匹配除\n之外的任意一个字符,

“^”:匹配字符开头

“+”:匹配前一规则一次或多次

“*”:匹配前一规则0次或多次

“?”:匹配前一规则1次或0次

“{m}”:匹配前一规则m次

“{n,m}”:匹配前一规则n到m次

“|”:匹配|左或|右的字符

“(…)”:分组匹配

“\A”:只从字符开头匹配

“\Z”:匹配字符结尾,同$

“\d”:匹配0-9数字

“\D”:匹配非数字

“\w”:匹配A-Za-z0-9字符

“\W”:匹配非A-Za-z0-9

“\s”:匹配空白字符

“(?P<name>…)”:分组匹配,使用groupdict()按name生成字典

\是一个转义符,后跟规则,表示是按规则搜索不是只特定字符

re.search(formatter,str):搜索

re.findall(formatter,str):生成所有符合规则的内容

re.split(formatter,str):以匹配字符分割列表

re.sub(formatter,repl,str,count=?,flag=?):以匹配字符替换

\\\\匹配一个\

flags:

re.I(re.IGNORECASE):忽略大小写

M(MULTILINE):多行模式

S(DOTALL):点任意匹配模式

Python学习笔记十一:模块的更多相关文章

  1. Python学习笔记之模块与包

    一.模块 1.模块的概念 模块这一概念很大程度上是为了解决代码的可重用性而出现的,其实这一概念并没有多复杂,简单来说不过是一个后缀为 .py 的 Python 文件而已 例如,我在某个工作中经常需要打 ...

  2. Python学习笔记—itertools模块

    这篇是看wklken的<Python进阶-Itertools模块小结> 学习itertools模块的学习笔记 在看itertools中各函数的源代码时,刚开始还比较轻松,但后面看起来就比较 ...

  3. python学习笔记_week5_模块

    模块 一.定义: 模块:用来从逻辑上组织python代码(变量,函数,类,逻辑:实现一个功能), 本质就是.py结尾的python文件(文件名:test.py,对应模块名:test) 包:用来从逻辑上 ...

  4. python学习笔记(八)-模块

    大型python程序以模块和包的形式组织.python标准库中包含大量的模块.一个python文件就是一个模块.1.标准模块 python自带的,不需要你安装的2.第三方模块 需要安装,别人提供的. ...

  5. Python学习笔记-常用模块

    1.python模块 如果你退出 Python 解释器并重新进入,你做的任何定义(变量和方法)都会丢失.因此,如果你想要编写一些更大的程序,为准备解释器输入使用一个文本编辑器会更好,并以那个文件替代作 ...

  6. Python学习笔记1—模块

    模块的使用 引用模块的两种形式 形式一: import module_name 形式二: from module1 import module11   (module11是module的子模块) 例: ...

  7. Python学习笔记2——模块的发布

    1.为模块nester创建文件夹nester,其中包含:nester.py(模块文件): """这是"nester.py"模块,提供了一个名为prin ...

  8. python学习笔记十——模块与函数

    第五章 模块与函数 5.1 python程序的结构 函数+类->模块              模块+模块->包                 函数+类+模块+包=Python pyth ...

  9. Python学习笔记14—模块

    在python中所有的模块都被加入到了sys.path中,用下面的方法可以看见模块的位置. >>> import sys >>> import pprint > ...

  10. python学习笔记:模块——自定义模块的3种导入方式

    一.定义 模块就是用一堆的代码实现了一些功能的代码的集合,通常一个或者多个函数写在一个.py文件里,而如果有些功能实现起来很复杂,那么就需要创建n个.py文件,这n个.py文件的集合就是模块.如果不懂 ...

随机推荐

  1. matplotlib点线 坐标刻度 3D图绘制(六)

    plot语句中支持除X,Y以外的参数,以字符串形式存在,来控制颜色.线型.点型等要素,语法形式为: plt.plot(X, Y, 'format', ...) 1 点和线的样式 颜色 参数color或 ...

  2. Linux入门-3 Linux磁盘及文件系统管理

    1. 磁盘基本概念 1.1 磁盘结构:盘片(单碟vs多碟).磁头(读写数据) 1.2 磁盘在Linux中的表示 1.3 分区概念 2 使用fdisk进行磁盘管理 3 Linux文件系统 mke2fs ...

  3. Linux 系统安装[Redhat]

    系统下载 Linux操作系统各版本ISO镜像下载 系统安装 1.1. 分区知识 1.2. 磁盘分区命名以及编号 IDE盘:  hda  第一块盘 hda1/第一块盘的第一个分区 hdb  第二块盘 h ...

  4. 乘风破浪:LeetCode真题_018_4Sum

    乘风破浪:LeetCode真题_018_4Sum 一.前言 前面我们已经练习过了三个数相加的集合运算,现在变成了四个数,其实道理是一样的.三个数的时候可以转成两个数的加法,最后来解决,而四个数的可以转 ...

  5. 【Azure IoT DevKit】实验终于做完了

    大家好,我是MSP李桑榆 今天终于把几个Azure IoT DevKit的小实验的视频给做完了. 不敢说什么指导,只是给大家一个参考.因为Devkit不需要你写一行代码,只需要你按着步骤来,并没有什么 ...

  6. August 23rd 2017 Week 34th Wednesday

    Do not pray for easy lives. Pray to be stronger men. 不要祈祷舒适的生活,而是祈祷自己能变得更强大. It seems this quotation ...

  7. keepalived安装文档

      安装依赖 su - root yum -y install kernel-devel* yum -y install openssl-* yum -y install popt-devel yum ...

  8. iptables常用配置

    常用的iptables模板 #!/bin/sh iptables -F iptables -X iptables -F -t mangle iptables -t mangle -X iptables ...

  9. java二维数组定义初始化-杨辉三角

    public class Array2Demo2_3 { public static void main(String[] args) { //定义初始化 int[][] arr = new int[ ...

  10. Todolist项目总结 JavaScript+jQuery

    Html部分 消息提醒,开始隐藏 内容区 2.1    标题 2.2    表单(输入框.提交按钮) 2.3 清单列表 2.4 任务详情遮罩 2.5 任务详情 3   video引入提示音乐 Css部 ...