python中常用模块2

   time模块即1与时间有关的模块

可以分为三类:

1.时间戳 从1970-1-1 0:0:0开始计算时间

  time.time()

2.结构化时间

time.localtime()  返回的是一个元祖 是指当地的时间

time.localtime()也可以获取单个值 例如:time.localtime().tm_year

time.gmtime() 指时间统一时间

3.格式化的字符串时间

time.strftime("%Y-%m-%d %H:%M:%S %p")

time.strftime("%Y-%m-%d %X %p")

三种格式之间也可相互转化

 

和时间相关的常用模块还有datetime模块,datetime模块可以分成两个部分1.和日期相关2.和时间相关

datetime模块

datetime.datetime.now() 获取当前的详细时间,也可以获取时间的部分

例如:datetime.datetime.now().hour

亦可以替换时间的某一部分

例如:x=datetime.datetime.now()

        x1=x.replace(year=2020)

       print(x)

    这样就可以把年份换掉了

datetime.timedelta()  时间差对象不常用

 

pickle模块

pickle是一个用来序列化的模块,序列化即将内存中的数据结构转化为一种中间格式存储到硬盘中,永久存储.说道序列化就要提到反序列化,即把硬盘上存储的中间格式数据还原到内存中使用.

pickle.dump()和pickle.dumps()都是序列化.区别在与pickle.dump对write进行了封装

pickle.load()和pickle.loads()都是反序列化.区别是pickle.load对read进行了封装.

 

shelve模块

也是用于序列化的,和pickle的不同在于不需要关心文件模式,直接把它当成字典看待,也可以直接对数据进行修改,而不用覆盖原有的数据.

 

json模块

json是java script object notation的缩写对于python来说json就是一种通用的数据格式

js 中的数据类型         python数据类型 的对应关系
           {}                            字典
           []                               list
           string ""                      str
           int/float                   int/float
           true/false                True/False
           null                          None

json的常用功能

json.dump()和json.dumps()

json.load()和json.loads()

 

xml模块

xml指可扩展的标记语言

xml.etree.ElementTree.parse()    解析文件

rootTree = tree.getroot()  获取根便签

for item in rootTree.iter()  获取全文内所有标签

item.tag()  获取标签名

item.attrib()   获取标签的属性

item.text()         获取文本的内容

rootTree.find()  获取单个属性

rootTree.remove()   删除标签

添加标签

x=xml.etree.ElementTree.Element()

rootTree.append(x)

tree.write()  写入文件

 

configparser模块

用于解析配置文件的模块,配置文件只有两种内容:section和option

configparser.ConfigParser()    创建一个解释器

config.read()   读取并解析文件

config.sections() 获取所有分区

config.options()   获取所有选项

config.get(sections,options)  获取某个值,返回的是字符串类型的值

config.has_option()  是否存在某个选项

config.add_section()  添加分区

config.set()

config.remove_option()  删除选项

config.set()  可以用于修改

config.write()    写入文件

 

logging模块

1. 日志的级别

loging.debug   调试信息  10

logging.info   常规信息    20

logging.warning  警告信息  30

logging.error  错误信息   40

logging.critical  严重错误   50

默认情况下 级别是30 logging warning 日志的输入位置是控制台

 

2.自定义日志的配置

logging.basicConfig(

                      filename="a.log",
                       filemode="at",
                       level=10,
                       format="%(asctime)s %(levelname)s %(funcName)s %(lineno)s %(message)s",
                        datefmt="%Y-%m-%d %X %p"
)

 

日志模块的四个核心角色

1.logger  2.filter  3.handler  4. formatter

1.生成一个日志

logger=logging.getLogger('logger')

.设置日志级别

logger.setLever(logging.DEBUG)

2.日志处理器

logging.FileHandler()

3.格式化处理器

logging.Formatter("%(asctime)s %(levelname)s %(funcName)s %(lineno)s %(message)s",datefmt="%Y-%m-%d %X %p")

 4.将以上三步进行连接

logger文件的继承

以字典生成logger

 

logging.StreamHandler()  输出到控制台

logging.FileHandler()   输出到文件

 

hashlib模块

hash是一种算法,将 一的个任意长的数据得到固定长度特征码.

重要用于密码验证

 m=hashlib.md5("aaa".encode("utf-8"))

加盐

m.update("abcdefplkjoujhh".encode("utf-8"))

print(m.hexdigest)

 

 

re模块

主要正则表达式相关即 一堆带有特殊意义的符号组成式子

re.findall()   找出所有

 re.match  从字符串开始处匹配,只找一个

 re.search()  从全文范围匹配,只取一个

re.split()  切分

re.sub()  替换

当要匹配的内容包含\时

\\\\

 

subprocess模块

res=subprocess.Popen(cmd,shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE)

stdout  输出管道

stdin  输入管道

stderr  错误管道

res.stdout.read()

subprocess 主要用于执行系统指令 (启动子进程) 与os.system的不同在于
subprocess 可以与这个子进程进行数据交换

 

posted @ 2018-10-21 18:12  彼岸花纽约  阅读(172)  评论(0编辑  收藏  举报