1, módulo de tiempo
operación de control de la prioridad del módulo 1.1 Tiempo
1.1.1 tiempo
import time
1) El tiempo se divide en tres formatos:
① sello de tiempo: desde 1970 hasta el presente número de segundos transcurridos
Efecto: el intervalo de tiempo utilizado para calcular
print(time.time())
② según un formato determinado visualización de la hora: 03/30/2020 11:11:11
Papel: por hora del espectáculo
print(time.strftime('%Y-%m-%d %H:%M:%S %p'))
print(time.strftime('%Y-%m-%d %X'))
tiempo estructurado ③
Acción: el tiempo para la obtención de una cierta porción del individuo
res=time.localtime()
print(res)
print(res.tm_year)
print(res.tm_yday)
1.1.2 fecha y hora
import datetime
print(datetime.datetime.now())
print(datetime.datetime.now() + datetime.timedelta(days=3))
print(datetime.datetime.now() + datetime.timedelta(weeks=1))
1.2 módulo requiere tiempo para el funcionamiento maestro
1.2.1 La conversión de formato de hora
struct_time->时间戳
import time
s_time=time.localtime()
print(time.mktime(s_time))
1.2.2 marca de tiempo -> struct_time
tp_time=time.time()
print(time.localtime(tp_time))
1.2.3 añadido: Mundial de la hora estándar y la hora local
print(time.localtime())
print(time.gmtime()) # 世界标准时间,了解
print(time.localtime(333333333))
print(time.gmtime(333333333))
1.2.4 struct_time-> Tiempo de cadena con formato
s_time=time.localtime()
print(time.strftime('%Y-%m-%d %H:%M:%S',s_time))
print(time.strptime('1988-03-03 11:11:11','%Y-%m-%d %H:%M:%S'))
1.2.5 !!! realmente necesita saber una sola: formato de cadena <------> marca de tiempo
'1988-03-03 11:11:11'+7
format string--->struct_time--->timestamp
struct_time=time.strptime('1988-03-03 11:11:11','%Y-%m-%d %H:%M:%S')
timestamp=time.mktime(struct_time)+7*86400
print(timestamp)
format string<---struct_time<---timestamp
res=time.strftime('%Y-%m-%d %X',time.localtime(timestamp))
print(res)
time.sleep(3)
1.3 conocimiento de
import time
print(time.asctime())
import datetime
print(datetime.datetime.now())
print(datetime.datetime.utcnow())
print(datetime.datetime.fromtimestamp(333333))
2, el módulo de azar
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([111, 'aaa', [4, 5]])) # 1或者23或者[4,5]
print(random.sample([111, 'aaa', 'ccc','ddd'],2)) # 列表元素任意2个组合
print(random.uniform(1, 3)) # 大于1小于3的小数,如1.927109612082716
item = [1, 3, 5, 7, 9]
random.shuffle(item) # 打乱item的顺序,相当于"洗牌"
print(item)
Aplicación: códigos aleatorios
import random
res=''
for i in range(6):
从26大写字母中随机取出一个=chr(random.randint(65,90))
从10个数字中随机取出一个=str(random.randint(0,9))
随机字符=random.choice([从26大写字母中随机取出一个,从10个数字中随机取出一个])
res+=随机字符
import random
def make_code(size=4):
res=''
for i in range(size):
s1=chr(random.randint(65,90))
s2=str(random.randint(0,9))
res+=random.choice([s1,s2])
return res
print(make_code(6))
3, OS módulo
import os
Obtener una determinada carpeta y todas las subcarpetas y el nombre de la subcarpeta
res=os.listdir('.')
print(res)
size=os.path.getsize(r'/Users/linhaifeng/PycharmProjects/s14/day22/01 时间模块.py')
print(size)
os.remove() 删除一个文件
os.rename("oldname","newname") 重命名文件/目录
Aplicación ---- "" ls / "
os.system("ls /")
Provisión: clave y el valor debe ser una cadena
os.environ['aaaaaaaaaa']='111'
print(os.environ)
print(os.path.dirname(r'/a/b/c/d.txt'))
print(os.path.basename(r'/a/b/c/d.txt'))
print(os.path.isfile(r'笔记.txt'))
print(os.path.isfile(r'aaa'))
print(os.path.isdir(r'aaa'))
print(os.path.join('a','/','b','c','d'))
recomendar este
BASE_DIR=os.path.dirname(os.path.dirname(__file__))
print(BASE_DIR)
BASE_DIR=os.path.normpath(os.path.join(
__file__,
'..',
'..'
))
print(BASE_DIR)
Después python3.5, hemos lanzado un nuevo módulo de pathlib
from pathlib import Path
res = Path(__file__).parent.parent
print(res)
res=Path('/a/b/c') / 'd/e.txt'
print(res)
print(res.resolve())
4, el módulo sys
import sys
python3.8 run.py 1 2 3
valor de parámetro sys.argv se adquiere intérprete
print(sys.argv)
src_file=input('源文件路径: ').strip()
dst_file=input('目标文件路径: ').strip()
src_file=sys.argv[1]
dst_file=sys.argv[2]
# 判断
with open(r'%s' %src_file,mode='rb') as read_f,\
open(r'%s' %dst_file,mode='wb') as write_f:
for line in read_f:
write_f.write(line)
python3.8 run.py src_file dst_file
print('[%-50s]' %'#')
print('[%-50s]' %'##')
print('[%-50s]' %'###')
import time
res=''
for i in range(50):
res+='#'
time.sleep(0.5)
print('\r[%-50s]' % res,end='')
import time
def progress(percent):
if percent > 1:
percent = 1
res = int(50 * percent) * '#'
print('\r[%-50s] %d%%' % (res, int(100 * percent)), end='')
recv_size=0
total_size=1025011
while recv_size < total_size:
time.sleep(0.01) # 下载了1024个字节的数据
recv_size+=1024 # recv_size=2048
# 打印进度条
# print(recv_size)
percent = recv_size / total_size # 1024 / 333333
progress(percent)