今日内容:
一 time与datetime模块
二 random模块
三 os模块
四 sys模块
五 suprocess模块
# time模块和datetime模块
'''
import time
# 一:时间的三种格式
# 1、时间戳:秒数=>用于时间计算
# start=time.time()
# print(start,type(start))
# 2、格式化的字符串=>用于显示给人看
# res=time.strftime("%Y-%m-%d %H:%S:%M %p")
# res=time.strftime("%Y-%m-%d %X")
# print(res,type(res))
# 3、结构化的时间=>获取时间的某一部分
# res = time.localtime()
# res1 = time.gmtime()
# print(res,type(res))
# print(res.tm_year)
# print(res)
# print(res1)
# 二:时间转换
# 2.1 时间戳---》格式化的字符串
# struct_time=time.localtime(3333.3)
# res=time.strftime("%Y:%m",struct_time)
# print(res)
# 2.2 格式化的字符串---》时间戳
# struct_time=time.strptime("2017-07-03 11:11:11","%Y-%m-%d %H:%M:%S")
# res=time.mktime(struct_time)
# print(res)
# print(time.time()) # 时间戳
# print(time.localtime()) # 将一个时间戳转换为当前时区的struct_time。
# print(time.gmtime()) # UTC时区的struct_time
# print(time.mktime(time.localtime())) # 将一个struct_time转化为时间戳。
# print(time.strftime("%Y-%m-%d %X")) # 格式化的时间字符串 2020-07-30 14:56:20
# print(time.strptime('2020-07-30 14:56:20','%Y-%m-%d %X')) # 把一个格式化时间字符串转化为struct_time。(strftime()的逆操作)。
# print(time.asctime()) # 把一个表示时间的元组或者struct_time表示为'Thu Jul 30 15:27:23 2020'(默认参数为time.localtime())
# print(time.ctime()) # 把时间戳格式表示为'Thu Jul 30 15:27:23 2020' (默认参数为time.time())
# time.sleep(3) # 线程推迟指定的时间运行,单位为秒。
# 计算机认识的时间只能是'时间戳'格式,而程序员可处理的或者说人类能看懂的时间有: '格式化的时间字符串','结构化的时间' ,于是有了以下的转换关系
# 格式化的字符串时间(format string)---(strptime)--->结构化的时间---(mktime)--->时间戳(timestamp)
# 格式化的字符串时间(format string)<---(strftime)---结构化的时间<---(localtime)---时间戳(timestamp)
import datetime
# print(datetime.datetime.now()) # 返回 2020-07-30 15:32:52.197233
# print(datetime.date.fromtimestamp(time.time())) # 时间戳直接转成日期格式 2020-07-30
# print(datetime.datetime.now()) # 2020-07-30 15:32:52.197233
# print(datetime.datetime.now() + datetime.timedelta(3)) # 当前时间+3天 2020-08-02 15:32:52.197233
# print(datetime.datetime.now() + datetime.timedelta(-3)) # 当前时间-3天 2020-07-27 15:32:52.197233
# print(datetime.datetime.now() + datetime.timedelta(hours=3)) # 当前时间+3小时 2020-07-30 18:32:52.197233
# print(datetime.datetime.now() + datetime.timedelta(minutes=30)) # 当前时间+30分 2020-07-30 16:02:52.197233
# c_time = datetime.datetime.now() # 时间替换
# print(c_time.replace(minute=3, hour=2)) # 2020-07-30 02:03:28.398511
'''
# random模块
'''
import random
# print(random.random()) # 大于0且小于1之间的小数
# print(random.randint(1, 3)) # 大于等于1且小于等于3之间的整数
# print(random.randrange(1, 3)) # 大于等于1且小于3的整数
# print(random.choice([1, '3', [4, 7]])) # 在给定参数中随机取一个值
# print(random.sample([1, '3', [4, 7]], 2)) # 列表元素任意2个组合
# print(random.uniform(1, 3)) # 大于1且小于3的小数
# item = [1, 2, 3, 4, 5]
# random.shuffle(item) # 打乱item的顺序,(洗牌)
# print(item)
# 生成随机验证码
# def make_code(n): # n------->验证码位数
# s = ''
# for i in range(n):
# s1 = str(random.randint(0, 9))
# s2 = chr(random.randint(65, 90))
# s += random.choice([s1, s2])
# return s
# print(make_code(4))
'''
# os模块
'''
import os
# print(os.listdir(".")) # ['7.30.py'] 返回包含目录中文件名的列表。
# cmd = input(r"""
# Microsoft Windows [版本 10.0.19041.388]
# (c) 2020 Microsoft Corporation. 保留所有权利。
#
# %s=====> """ % os.getcwd())
# res = os.system(cmd)
# print('=' * 100)
# print(res)
# os.remove() # 删除一个文件
# os.rename("oldname","newname") # 重命名文件/目录
# os.system("bash commond") # 运行shell命令,直接显示
# print(os.environ) # 获取系统环境变量
# os.mkdir('dirname') # 生成单级目录;相当于shell中mkdir dirname
# path = r'F:\notepad\2020.7.01\day21\7.30.py'
# print(os.path.join('a', 'b', 'c', 'd.txt')) # a\b\c\d.txt 将多个路径组合后返回,第一个绝对路径之前的参数将被忽略
# print(os.path.dirname(path)) # F:\notepad\2020.7.01\day21 返回path的目录。
# print(os.path.basename(path)) # 7.30.py 返回path最后的文件名
# print(os.path.split(path)) # ('F:\\notepad\\2020.7.01\\day21', '7.30.py')
# print(os.path.getsize(path)) # 返回path的大小 (字节数)
# print(os.path.getatime(path)) # 返回path所指向的文件或者目录的最后存取时间
# print(os.path.getmtime(path)) # 返回path所指向的文件或者目录的最后修改时间
# print(os.path.exists(path)) # 判断文件是否存在,如果path存在,返回True;如果path不存在,返回False
# print(os.path.isabs(r"F:\notepad\2020.7.01\day21")) # True 如果path是绝对路径,返回True
# print(os.path.isabs(r"\notepad\2020.7.01\day21")) # True
# print(os.path.isabs(r"notepad\2020.7.01\day21")) # False
# 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) # 在索引前插入对象,加入环境变量中
# print(sys.path)
#
# # 方式二:
# print(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))) # F:\notepad
'''
# sys模块
'''
import sys
# print(sys.argv) # 命令行参数List,第一个元素是程序本身路径
# print(sys.version) # 获取Python解释程序的版本信息
# sys.exit() # 退出程序,正常退出时exit(0)
# print(sys.path) # 返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值
# print(sys.platform) # 返回操作系统平台名称
# 打印动态进度条
import time
def progress(percent):
if percent > 1:
percent = 1
print("\r[%-50s] %d%%" % ("#" * int(50 * percent), int(100 * percent)), end='')
total_size = 16343 # 进度总长度
recv_size = 0 # 初始为0
while recv_size < total_size:
time.sleep(0.3)
recv_size += 1024 # 每次下载1024
percent = recv_size / total_size
progress(percent)
'''
# subprocess模块
'''
import subprocess
obj1 = subprocess.Popen("dir", shell=True,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE
)
obj2 = subprocess.Popen("dirasdas", shell=True,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE
)
res1 = obj1.stdout.read()
res2 = obj2.stderr.read()
print(res1.decode('gbk'))
print('-' * 50)
print(res2.decode('gbk'))
'''