标准库(内置模块)

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. 沉淀,再出发:jQuery的初步了解和入门

    沉淀,再出发:jQuery的初步了解和入门 一.前言     对于后端开发者来说,是不是真的不需要了解前端的开发经过和相关技术,从我个人的角度来说,我觉得如果不了解或者接触很少,极有可能造成开发的时候 ...

  2. 深入浅出SharePoint2010——请假系统实战

    一.需求分析文档 二.请假系统无代码解决方案 2.1 数据框架设计 2.2 权限设计 2.3 表单设计 2.4 工作流设计 2.5 门户主页设计 三.请假系统第三方解决方案(Nintex) 四.请假系 ...

  3. 前端工程师使用 Deepin 笔记

    笔者是一枚前端开发,在学习 Linux 的时候碰到了一个问题 —— 怎么练手?因为自己电脑上面装的是 Windows 系统,所以学习 Linux 的时候没办法进行练习,而敲指令是学习 Linux 最高 ...

  4. Tomcat中容器是什么以及容器与容器之间的数量关系。

    Tomcat容器到底是什么 学java有一小段时间了,一直使用Tomcat,也知道Tomcat是一个大的Servlet容器,里面还有许多子容器,容器之间都是相互嵌套的.也看过一下接收Tomcat的文章 ...

  5. 在windows下解压缩rar文件

    这是一篇比较无聊的博文.只是给博客除草的. 我从我的移动硬盘里翻出来了一堆电子书,从哪拿到的我忘了,但是都打在rar的压缩包里,这让我查找起来非常不方便.前几天找某本书看,就没有查到,又百度到的下载地 ...

  6. 2018-2019-2 网络对抗技术 20165322 Exp2 后门原理与实践

    2018-2019-2 网络对抗技术 20165322 Exp2 后门原理与实践 目录 实验准备 后门概念 常用后门工具 实验内容与步骤 使用netcat获取主机操作Shell,cron启动 使用so ...

  7. 「CF1025D Recovering BST」

    题目 郑州讲过的题了 发现这是一个二叉搜索树,给出的还是中序遍历,我们很自然的想到我们需要可以用一个\(f[i][j][k](k\in[i,j])\)来表示区间\([i,j]\)能不能形成以\(k\) ...

  8. hctf2016_302跳转绕csp---总结

    页面目录如下: register.php注册页面. user.php可发送消息给其他用户. profile.php可配置参数添加用户头像(加载eval js文件). static存在redirect. ...

  9. 5、Spring Cloud-声明式调用 Feign(下)

    5.5.在Feign中使用HttpClient和OkhHttp Feign 中.Client 是一个非常重要的组件, Feign 最终发送 Request 请求以及接收 Response响应都是由 C ...

  10. Ajax请求与浏览器缓存

    在现代Web应用程序中,前端代码充斥着大量的Ajax请求,如果对于Ajax请求可以使用浏览器缓存,那么可以显著地减少网络请求,提高程序响应速度. 1. Ajax Request 使用jQuery框架可 ...