目录
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)