Python学习笔记十一:模块
标准库(内置模块)
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学习笔记十一:模块的更多相关文章
- Python学习笔记之模块与包
一.模块 1.模块的概念 模块这一概念很大程度上是为了解决代码的可重用性而出现的,其实这一概念并没有多复杂,简单来说不过是一个后缀为 .py 的 Python 文件而已 例如,我在某个工作中经常需要打 ...
- Python学习笔记—itertools模块
这篇是看wklken的<Python进阶-Itertools模块小结> 学习itertools模块的学习笔记 在看itertools中各函数的源代码时,刚开始还比较轻松,但后面看起来就比较 ...
- python学习笔记_week5_模块
模块 一.定义: 模块:用来从逻辑上组织python代码(变量,函数,类,逻辑:实现一个功能), 本质就是.py结尾的python文件(文件名:test.py,对应模块名:test) 包:用来从逻辑上 ...
- python学习笔记(八)-模块
大型python程序以模块和包的形式组织.python标准库中包含大量的模块.一个python文件就是一个模块.1.标准模块 python自带的,不需要你安装的2.第三方模块 需要安装,别人提供的. ...
- Python学习笔记-常用模块
1.python模块 如果你退出 Python 解释器并重新进入,你做的任何定义(变量和方法)都会丢失.因此,如果你想要编写一些更大的程序,为准备解释器输入使用一个文本编辑器会更好,并以那个文件替代作 ...
- Python学习笔记1—模块
模块的使用 引用模块的两种形式 形式一: import module_name 形式二: from module1 import module11 (module11是module的子模块) 例: ...
- Python学习笔记2——模块的发布
1.为模块nester创建文件夹nester,其中包含:nester.py(模块文件): """这是"nester.py"模块,提供了一个名为prin ...
- python学习笔记十——模块与函数
第五章 模块与函数 5.1 python程序的结构 函数+类->模块 模块+模块->包 函数+类+模块+包=Python pyth ...
- Python学习笔记14—模块
在python中所有的模块都被加入到了sys.path中,用下面的方法可以看见模块的位置. >>> import sys >>> import pprint > ...
- python学习笔记:模块——自定义模块的3种导入方式
一.定义 模块就是用一堆的代码实现了一些功能的代码的集合,通常一个或者多个函数写在一个.py文件里,而如果有些功能实现起来很复杂,那么就需要创建n个.py文件,这n个.py文件的集合就是模块.如果不懂 ...
随机推荐
- java 分次读取大文件的三种方法
1. java 读取大文件的困难 java 读取文件的一般操作是将文件数据全部读取到内存中,然后再对数据进行操作.例如 Path path = Paths.get("file path&qu ...
- HTML后续
列表标签 <ul>.<ol>.<dl> 列表标签 无序列表 属性: type="属性值".属性值可以选: disc(实心原点,默认),squar ...
- 使用 ruamel.yaml 读写 yaml 文档
官网链接: https://pypi.org/project/ruamel.yaml/ 1. 安装ruamel.yaml pip install ruamel.yaml 2. 准备yaml文件: Ch ...
- app.config/web.config配置文件增删改
一.概述 应用程序配置文件,对于asp.net是 web.config,对于WINFORM程序是 App.Config(ExeName.exe.config). 配置文件,对于程序本身来说,就是基础和 ...
- 如何在windows下用IDA优雅调试ELF
在windows下如何用IDA优雅调试ELF brief: 构建一个IDA-linux_server-docker镜像,优雅地IDA远程调试 使用传统虚拟机来运行一个linux程序就得跑一个完整的li ...
- JvisualVM的使用【转载】
VisualVM 是一款免费的,集成了多个 JDK 命令行工具的可视化工具,它能为您提供强大的分析能力,对 Java 应用程序做性能分析和调优.这些功能包括生成和分析海量数据.跟踪内存泄漏.监控垃圾回 ...
- 配置Ceph集群为OpenStack后端存储
配置Ceph存储为OpenStack的后端存储 1 前期配置 Ceph官网提供的配置Ceph块存储为OpenStack后端存储的文档说明链接地址:http://docs.ceph.com/docs/ ...
- collecitons.deque
python队列,可以使用collections里面的deque,将列表当作队列使用. deque方法有: from collections import deque deque.append() d ...
- Hadoop学习之路(十八)MapReduce框架Combiner分区
对combiner的理解 combiner其实属于优化方案,由于带宽限制,应该尽量map和reduce之间的数据传输数量.它在Map端把同一个key的键值对合并在一起并计算,计算规则与reduce一致 ...
- jquery Mobile入门—多页面切换示例学习
1.在JQuery Mobile中,多个页面的切换是通过<a>元素.并将<href>属性设置为#+对应的id号的方式进行的. 2.多页面切换示例代码: 复制代码代码如下: &l ...