1.时间模块time
time的计算时间是以1970年的元旦开始的
time模块时间的三种格式:
1.时间戳(常用于时间的计算加减)
2.格式化时间(通过format来规定显示的时间格式)
3.结构化时间(以元组的形式表示)
使用方法
import time
1.#时间戳形式的时间
time = time.time()
1608887368.7554362
2.#结构化时间格式
time = time.localtime() #当地的结构化时间
# time.struct_time(tm_year=2020, tm_mon=12, tm_mday=25, tm_hour=17, tm_min=12, tm_sec=2, tm_wday=4, tm_yday=360, tm_isdst=0)
time = time.gmtime() #全世界的时间格式
# time.struct_time(tm_year=2020, tm_mon=12, tm_mday=25, tm_hour=9, tm_min=12, tm_sec=30, tm_wday=4, tm_yday=360, tm_isdst=0)
3.#格式化的时间格式
time = time.strftime('%Y-%m-%d-%H-%M-%S')
2020-12-25-17-15-02
格式化时间的具体格式(参考内置模块注释)
Commonly used format codes:
%Y Year with century as a decimal number.
%m Month as a decimal number [01,12].
%d Day of the month as a decimal number [01,31].
%H Hour (24-hour clock) as a decimal number [00,23].
%M Minute as a decimal number [00,59].
%S Second as a decimal number [00,61].
%z Time zone offset from UTC.
%a Locale's abbreviated weekday name.
%A Locale's full weekday name.
%b Locale's abbreviated month name.
%B Locale's full month name.
%c Locale's appropriate date and time representation.
%I Hour (12-hour clock) as a decimal number [01,12].
%p Locale's equivalent of either AM or PM.'''
'''
三种格式之间的相互转化
格式化的字符串时间和时间戳不能够相互转换必须通过结构化的时间才可以相互转化
# 1.将时间戳格式化
timestamp = time.time()
struct_time = time.localtime(timestamp)
format_time = time.strftime('%Y-%m-%d-%H-%M-%S',struct_time)
# 2.将格式化的时间转为时间戳
format_time = time.strftime('%Y-%m-%d-%H-%M-%S')
struct_time = time.strptime(format_time,'%Y-%m-%d-%H-%M-%S')
timestamp = time.mktime(stru
结构化时间和时间戳直接转为格式化时间
能够将时间戳和结果化的时间直接转为固定格式的格式时间
# 1.时间戳转化为格式化时间
timestamp = time.time()
format_time = time.ctime(timestamp)
# Fri Dec 25 17:28:24 2020
# 2.将结构化时间直接转为格式化时间
struct_time = time.localtime()
format_time = time.asctime(struct_time)
print(format_time)
# Fri Dec 25 17:29:18 2020
time.sleep
睡眠操作
2.时间模块datatime
datatime能够直接支持格式化的时间进行相关操作
import datetime
time = datetime.datetime.now() # 拿到当前的时间
print(time)
# 2020-12-25 17:32:23.856205
#print(datetime.date.fromtimestamp(time.time()) ) # 时间戳直接转成日期格式 2016-08-19
print(datetime.datetime.now() + datetime.timedelta(3)) # 如果不传入参数则默认为天数
加减周数
print(datetime.datetime.now() + datetime.timedelta(weeks=7))
加减小时
print(datetime.datetime.now() + datetime.timedelta(hours=7))
加减秒
时间替代:
a = datetime.datetime.now()
print(a.replace(day=3,hour=2,minute=2))
2020-12-03 02:02:29.637263
能够加减以下操作:
days: float = ...,
seconds: float = ...,
microseconds: float = ...,
milliseconds: float = ...,
minutes: float = ...,
hours: float = ...,
weeks: float = ...,
3.随机模块random
import random
print(random.random())#(0,1)----float 大于0且小于1之间的小数
print(random.randint(1,3)) #[1,3] 大于等于1且小于等于3之间的整数
print(random.randrange(1,3)) #[1,3) 大于等于1且小于3之间的整数
print(random.choice([1,'23',[4,5]]))#1或者23或者[4,5]
print(random.sample([1,'23',[4,5]],2))#列表元素任意2个组合
print(random.uniform(1,3))#大于1小于3的小数,如1.927109612082716
item=[1,3,5,7,9]
random.shuffle(item) #打乱item的顺序,相当于"洗牌"
print(item)
4.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下为"\t\n",Linux下为"\n"
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路径处理
#方式一:推荐使用
import os
#具体应用
import os,sys
possible_topdir = os.path.normpath(os.path.join(
os.path.abspath(__file__),
os.pardir, #上一级
os.pardir,
os.pardir
))
sys.path.insert(0,possible_topdir)
#方式二:
os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
5.sys模块
sys.argv 命令行参数List,第一个元素是程序本身路径
2 sys.exit(n) 退出程序,正常退出时exit(0)
3 sys.version 获取Python解释程序的版本信息
4 sys.maxint 最大的Int值
5 sys.path 返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值
6 sys.platform 返回操作系统平台名称
5. subprocess模块
是用在专门向操作系统发指令的模块
import subprocess
res = subprocess.Popen(r'tasklist',shell=True,
stdout=subprocess.PIPE,stderr=subprocess.PIPE)
right_res = res.stdout.read().decode('gbk')
error_res = res.stderr.read().decode('gbk')
print(right_res)