常用模块

一、time模块(表示方式:时间戳、格式化字符串、元组(9个元素年、月、日、小时、分钟、秒、周几、一年中的第几天、时区))

获取元组的属性方法如下:

x = time.localtime()

x.tm_year

1、方法

(1)、时间戳:time(),返回从1970年1月1日到现在的秒数

(2)、sleep(n):延迟n秒

(3)、gmtime([时间戳]):把时间戳转换成元组,以标准时间为准

(4)、localtime():把时间戳转换成元组,以本地时间为准

(5)、mktime(tuple):把元组转换成时间戳。

(6)、strftime(format[, tuple]):把元组转换成格式化字符串

(7)、strptime(string, format):把格式化字符串转换成元组

(8)、asctime([time tuple]):把时间元组转换成格式化字符串,如Fri Jan 11 10:28:00 2019

(9)、ctime(seconds):把时间戳转换成格式化字符串,格式如上

2、属性:

(1)、timezone:返回本地时间与标准时间的差异,单位为秒

(2)、altzone:返回本地夏令时时间与标准时间的差异

(3)、daylight:是否使用夏令时

 

二、datetime模块

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

2、print(datetime.datetime.now()+datetime.timedelta(+3)) #获取3天后,参数可改为负数则为N天前

3、print(datetime.datetime.now()+datetime.timedelta(hours=2))

4、print(datetime.datetime.now()+datetime.timedelta(minutes=20))

5、c_time=datetime.datetime.now()

    c_time.replace(hour=2,minute=2) # 时间替换

三、random模块

1、random():随机生成0-1的小数

2、randint(a,b):随机生成a到b的整数,包含b

3、randrange(a,b):随机生成a到b的整数,不包含b

4、choice(seq):从seq中随机选取一个值

5、sample(seq, n):从seq中随机选取n个值

6、uniform(a,b):从a到b之间选取一个数,浮点数

7、shuffle(list):打乱list列表的顺序

四、os模块

1、getcwd():获取当前工作目录

2、chdir(path):切换路径

3、curdir:返回当前目录(属性)

4、pardir:返回当前目录的父目录(属性)

5、makedirs(path):递归地创建目录

6、removedirs(path):若目录为空,则删除,并递归到返回上一层目录,如也为空,则

7、mkdir(path):创建目录,但不能递归地创建

8、rmdir(path):删除空目录,只删除最后面的一层

9、listdir(path):列出目录中的文件

10、remove(path):删除文件

11、rename(old,new):重命名

12、stat(path):获取文件或目录的信息

13、sep:路径分隔符

14、linesep:换行分隔符

15、environ:查看系统的环境变量

16、pathseq:多个路径之间的分隔符

17、name:当前系统平台

18、os.system(cmd):调用系统命令

19、os.path.abspath(path):获取文件的绝对路径

20、path.split(path):返回一个包含目录和文件名的二元元组

21、path.dirname(path):返回文件的目录

22、path.basename(path):返回文件名

23、path.exists(path):返回path是否存在,最后面不能加\?

24、path.isabs(path):是否是绝对路径?

25、path.isfile(path):是否是文件?

26、path.isdir(path):是否是目录?

27、path.getatime(path):获取文件或目录的访问时间

28、path.getmtime(path):获取文件或目录的修改时间

29、path.joinpath(path1,path2,path3...):路径连接

 

五、sys模块

1、sys.path:返回Python的全局变量列表,这些列表是找所需导入的模块的路径。

2、sys.argv:返回脚本的相对路径,主要用于带有参数的脚本,如python sys_mod.py 1 2 3

                      取第三个参数sys.argv[2]

3、sys.stdout.write(val):向数据写入到缓存

4、sys.stdout.flush():把缓存写到屏幕

5、sys.path.append():添加环境变量

6、sys.version:获取python版本信息

 

六、shutle模块

高级的文件、文件夹、压缩包处理模块

1、copyfileobj(fsrc,fdst[,length]):把文件拷贝到另一个文件中,fsrc、fdst均为文件对象

2、copyfile(fsrc,fdst):把文件拷贝到另一个文件中,参数均为文件名

3、copymode(fsrc,fdst):拷贝权限。内容、组、用户均不变

4、copystat(fsrc,fdst):拷贝文件所有属性

5、copy(fsrc,fdst):拷贝文件和权限

6、copy2(fscr,fdst):拷贝文件和所有状态信息(包括权限,用户,属组)

7、copytree(fsrc,fdst):递归地拷贝文件(即拷贝目录)

8、rmtree(path):删除目录

9、move(fsrc,fdst):递归地移动文件

10、make_archive(base_name, format, root_name):压缩,base_name为文件名,format为格式,root_name为你需要压缩的文件夹

11、zipfile模块:

import zipfile
z = zipfile.ZipFile('abc.zip', 'w')
z.write('test1')
z.write('test2')
z.close()

六、json&pickle

用于序列化的两个模块

  • json,用于字符串 和 python数据类型间进行转换
  • pickle,用于python特有的类型 和 python的数据类型间进行转换

Json模块提供了四个功能:dumps、dump、loads、load

pickle模块提供了四个功能:dumps、dump、loads、load

注意:dumps、loads处理变量,dump、load处理的是文件

 

七、shelve模块

用于把数据写入文件,读取文件

1、写入文件

(1)、首先需打开文件

f=shelve.open(filename)

(2)、赋值

f['name']=var

(3)、关闭文件

f.close()

2、读取

也需要打开和关闭文件,读取需要使用到shelve.get(key)方法

 

八、xml处理模块

xml是实现不同语言或程序之间进行数据交换的协议,跟json差不多,但json使用起来更简单,不过,古时候,在json还没诞生的黑暗年代,大家只能选择用xml呀,至今很多传统公司如金融行业的很多系统的接口还主要是xml。

xml的格式如下,就是通过<>节点来区别数据结构的:

xml协议在各个语言里的都 是支持的,在python中可以用以下模块操作xml 

1、读操作例子

import xml.etree.ElementTree as ET

tree = ET.parse('xmltest.xml') # 对xml文件进行解释,并返回内存地址
root = tree.getroot() # 获取根节点
print(root.tag)

# 遍历xml文件
for child in root:
print(child.tag, child.attrib) # tag为标签,attrib为属性,text为文本
for i in child: # 遍历子节点
print(i.tag, i.text)

# 只遍历year节点
for i in root.iter('year'):
print(i.tag, i.text)

2、修改操作
# Author:Treelight
import xml.etree.ElementTree as ET

tree = ET.parse('xmltest.xml')
root = tree.getroot()

# # 修改
# for node in root.iter('year'): # 查找year节点
# new_year = int(node.text)+1
# node.text = str(new_year)
# node.set('Updated_by', 'Treelight')
# tree.write('xmltest.xml')

# 删除
for node in root.findall('country'): # 查找所有的country
rank = int(node.find('rank').text) # 获取rank值
if rank > 50:
root.remove(node) # 删除节点

tree.write('output.xml')

创建
import xml.etree.ElementTree as ET

new_xml = ET.Element('personinfolist') # 生成根
personinfo = ET.SubElement(new_xml, 'personinfo', attrib={'enrolled':'yes'}) # 生成子根
name = ET.SubElement(personinfo, 'name',)
age = ET.SubElement(personinfo, 'age', attrib={'checked':'no'})
sex = ET.SubElement(personinfo, 'sex')
name.text = 'Treelight'
age.text = '37'

et = ET.ElementTree(new_xml)
et.write('text.xml', encoding='utf-8', xml_declaration=True)
ET.dump(new_xml) # 打印

九、PyYAML处理模块
Python也可以很容易的处理ymal文档格式,只不过需要安装一个模块,参考文档:http://pyyaml.org/wiki/PyYAMLDocumentation
ubuntu test:
  ip: 192.168.2.243
  port: 22

server1:
  ip: 192.168.2.100
  port: 30000

server2:
  ip: 10.4.4.22

 

import yaml
yaml.warnings({'YAMLLoadWarning': False})
f = open('new_hosts.yml')
data = yaml.load(f)
print(data)
f.close()

 



十、configparser模块
生成和修改配置文件
1、生成配置文件
import configparser

config = configparser.ConfigParser()
config['DEFAULT'] = {'ServerAliveInterval': '45',
'Compression': 'yes',
'CompressionLevel': '9',
'ForwardX11:': 'yes'}

config['bitbucket.org'] = {}
config['bitbucket.org']['User'] = 'hg'

config['topsecret.server.com'] = {}
topsecret = config['topsecret.server.com']
topsecret['Port'] = '50022'
topsecret['ForwardX11'] = 'no'

with open('exam.ini', 'w') as configfile:
config.write(configfile)
2、读取配置值
import configparser
conf = configparser.ConfigParser() # 创建类
conf.read('example.ini') # 读取文件
# print(conf.defaults()) # 读取默认
# print(conf.sections()) # 读取除了默认的其它section
print(conf['bitbucket.org']['user']) # 读取配置值

3、删除
import configparser
conf = configparser.ConfigParser()

conf.read('example.ini')
conf.remove_section('bitbucket.org') # 删除节点
conf.write(open('example.cfg', 'w')) # 写入文件

十一、hashlib模块
import hashlib

m = hashlib.md5() # 除了md5,还有sha算法可使用
m.update(b'Hello')
print(m.hexdigest())
m.update(b"It's me!") # 与上面的Hello拼接
print(m.hexdigest())

import hmac  # 双重加密

h = hmac.new(b'12345', '250'.encode(encoding='utf-8'))
print(h.hexdigest())

转载于:https://www.cnblogs.com/Treelight/p/10253617.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值