模块(二)

time模块

1 时间戳

time_stamp = time.time()
print(time_stamp)


1560149893.7927804     # 表示的是从1970年1月1日00:00:00开始按秒计算

2 格式化时间

format_time = time.strftime('%Y-%m-%d %X')  # 格式可自定义
print(format_time)

2019-06-10 14:58:13

3 结构化时间

共有9个元素共九个元素,分别为(年,月,日,时,分,秒,一年中第几周,一年中第几天,夏令时)

struct_time = time.localtime()
print(struct_time)

time.struct_time(tm_year=2019, tm_mon=6, tm_mday=10, tm_hour=14, tm_min=58, tm_sec=13, tm_wday=0, tm_yday=161, tm_isdst=0)

4 格式转换

(1)结构化转时间戳 time.mktime

print(time.mktime(now_time))

(2)结构化转格式化 time.strftime

print(time.strftime("%Y-%m-%d %X", now_time))

(3)格式化转结构化 time.strptime

print(time.strptime('2013-05-20 13:14:52', '%Y-%m-%d %X'))

5 延时出现

time.sleep()

import time
i = 1
while i <= 3:
    print (i) # 输出i
    i += 1
    time.sleep(1) # 休眠1秒

datetime模块

1 当前时间

print(datetime.datetime.now())

2 时间加减

默认为day,可自由更改(小时,分钟等)

print(now + datetime.timedelta(3))
print(now + datetime.timedelta(-3))

3 时间替换

print(now.replace(hour=1,minute=20,second=13))   

2019-06-10 01:20:13.528782   # 时间改为今天01:20:13

random模块

1 大于0且小于1之间的小数

print(random.random())

2 大于等于1且小于等于3之间的整数

print(random.randint(1, 3))

3 大于等于1且小于3之间的整数

print(random.randrange(1, 3))

4 列表内的任意一个元素,即1或者‘23’或者[4,5]

print(random.choice([1, '23', [4, 5]]))

5 列表元素任意n个元素的组合

random.sample([], n)

print(random.sample([1, '23', [4, 5]], 2))   # n=2

os模块

os模块多用于处理文件

方法 详解
os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径
os.chdir("dirname") 改变当前脚本工作目录;相当于shell下cd
os.curdir 返回当前目录: ('.')
os.pardir 获取当前目录的父目录字符串名:('..')
os.makedirs('dirname1/dirname2') 可生成多层递归目录
os.removedirs('dirname1') 若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推
os.mkdir('dirname') 生成单级目录;相当于shell中mkdir dirname
os.rmdir('dirname') 删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rmdir dirname
os.listdir('dirname') 列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印
os.remove() 删除一个文件
os.rename("oldname","newname") 重命名文件/目录
os.stat('path/filename') 获取文件/目录信息
os.sep 输出操作系统特定的路径分隔符,win下为"",Linux下为"/"
os.linesep 输出当前平台使用的行终止符,win下为" ",Linux下为" "
os.pathsep 输出用于分割文件路径的字符串 win下为;,Linux下为:
os.name 输出字符串指示当前使用平台。win->'nt'; Linux->'posix'
os.system("bash command") 运行shell命令,直接显示
os.environ 获取系统环境变量
os.path.abspath(path) 返回path规范化的绝对路径
os.path.split(path) 将path分割成目录和文件名二元组返回
os.path.dirname(path) 返回path的目录。其实就是os.path.split(path)的第一个元素
os.path.basename(path) 返回path最后的文件名。如何path以/或结尾,那么就会返回空值。即os.path.split(path)的第二个元素
os.path.exists(path) 如果path存在,返回True;如果path不存在,返回False
os.path.isabs(path) 如果path是绝对路径,返回True
os.path.isfile(path) 如果path是一个存在的文件,返回True。否则返回False
os.path.isdir(path) 如果path是一个存在的目录,则返回True。否则返回False
os.path.join(path1[, path2[, ...]]) 将多个路径组合后返回,第一个绝对路径之前的参数将被忽略
os.path.getatime(path) 返回path所指向的文件或者目录的最后存取时间
os.path.getmtime(path) 返回path所指向的文件或者目录的最后修改时间
os.path.getsize(path) 返回path的大小
os.walk(path) 返回当前路径下的所有文件夹及文件

sys模块

sys模块负责程序与python解释器的交互,提供了一系列的函数和变量,用于操控python的运行时环境。

方法 详解
sys.argv 命令行参数List,第一个元素是程序本身路径
sys.modules.keys() 返回所有已经导入的模块列表
sys.exc_info() 获取当前正在处理的异常类,exc_type、exc_value、exc_traceback当前处理的异常详细信息
sys.exit(n) 退出程序,正常退出时exit(0)
sys.hexversion 获取Python解释程序的版本值,16进制格式如:0x020403F0
sys.version 获取Python解释程序的版本信息
sys.maxint 最大的Int值
sys.maxunicode 最大的Unicode值
sys.modules 返回系统导入的模块字段,key是模块名,value是模块
sys.path 返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值
sys.platform 返回操作系统平台名称
sys.stdout 标准输出
sys.stdin 标准输入
sys.stderr 错误输出
sys.exc_clear() 用来清除当前线程所出现的当前的或最近的错误信息
sys.exec_prefix 返回平台独立的python文件安装的位置
sys.byteorder 本地字节规则的指示器,big-endian平台的值是'big',little-endian平台的值是'little'
sys.copyright 记录python版权相关的东西
sys.api_version 解释器的C的API版本

序列化

把对象(变量)从内存中变成可存储或传输的过程称之为序列化,在Python中叫pickling

序列化的优点:

​ 持久保存状态

​ 跨平台数据交互

json模块

json序列化能够达到跨平台传输数据的目的

Json类型 Python类型
{} dict
[] list
"string" str
520.13 int或float
true/false True/False
null None

序列化

dic = {'name':'nick'}

with open('user.json','w',encoding='utf8') as fw:
    json.dump(dic,fw)            

反序列化

dic = {'name':'nick'}

with open('user.json','r',encoding='utf8') as fr:
    data = json.load(fr)
print(data)

pickle

pickle的好处是可以存储Python中的所有的数据类型

序列化(注意:pickle模块需要使用二进制存储,即'wb'模式存储)

with open('Pickle序列化对象.pkl', 'wb') as fw:
    pickle.dump(struct_data, fw)

反序列化

with open('Pickle序列化对象.pkl', 'rb') as fr:
    pickle = pickle.load(fr)
print(data)
原文地址:https://www.cnblogs.com/einsam/p/10998151.html