python学习第二十一天

一、time与datetime模块

1.1、time模块时间的三种格式

1.1.1、时间戳(给机器用的,秒数,用于时间计算)

时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量。我们运行“type(time.time())”,返回的是float类型。

time.time()

start=time.time()
print(start,type(start)) # 1596089486.957195 <class 'float'>

1.1.2、格式化的字符串(用于显示给人看)

格式化的时间字符串(Format String)

time.strftime()

res=time.strftime("%Y-%m-%d %H:%S:%M %p")
print(res,type(res)) #2020-07-30 14:03:15 PM <class 'str'>
res=time.strftime("%Y-%m-%d %X")
print(res,type(res)) #2020-07-30 14:15:03 <class 'str'>

1.1.3、结构化的时间=>获取时间的某一部分

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

time.localtime()东八区时间

time.gmtime()世界标准时间

res=time.localtime()
res1=time.gmtime()
print(res,type(res))
print(res1,type(res1))
print(res.tm_year)
print(res.tm_hour)
运行结果:
time.struct_time(tm_year=2020, tm_mon=7, tm_mday=30, tm_hour=14, tm_min=19, tm_sec=7, tm_wday=3, tm_yday=212, tm_isdst=0) <class 'time.struct_time'>
time.struct_time(tm_year=2020, tm_mon=7, tm_mday=30, tm_hour=6, tm_min=19, tm_sec=7, tm_wday=3, tm_yday=212, tm_isdst=0) <class 'time.struct_time'>
2020
14

1.2、时间转换

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yYqW9PN1-1596115056494)(C:\Users\高雨\AppData\Roaming\Typora\typora-user-images\image-20200730150736949.png)]

1.2.1、时间戳—》格式化的字符串

strftime():把一个struct_time转化为格式化时间字符串
print(time.strftime("%Y-%m-%d %X", time.localtime())) # 2020-07-30 14:52:34

struct_time=time.localtime(3333333.33)
res=time.strftime("%Y:%m",struct_time)
print(res) # 1970:02

1.2.2、格式化的字符串—》时间戳

mktime(t) : 将一个struct_time转化为时间戳
print(time.mktime(time.localtime())) # 1596091829.0

time.strptime()
把一个格式化时间字符串转化为struct_time。实际上它和strftime()是逆操作
struct_time=time.strptime("2017-07-03 11:11:11","%Y-%m-%d %H:%M:%S")
res=time.mktime(struct_time)
print(res) # 1499051471.0

1.2.3、ctime和asctime

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZE2gySpA-1596114951647)(C:\Users\高雨\AppData\Roaming\Typora\typora-user-images\image-20200730150817481.png)]

print(time.ctime(3333.3))#Thu Jan  1 08:55:33 1970
print(time.asctime(time.localtime(3333.3)))#Thu Jan  1 08:55:33 1970

1.2.4、time.sleep()

time.sleep(3)

1.3、datetime

1.3.1、时间加减

import datetime
print(datetime.datetime.now())#2020-07-30 15:16:14.272784

print(datetime.date.fromtimestamp(time.time()))# 时间戳直接转成日期格式2020-07-30

print(datetime.datetime.fromtimestamp(time.time()))#2020-07-30 15:20:59.089128

res=datetime.datetime.now() + datetime.timedelta(days=3)#当前时间+3天

res1=datetime.datetime.now() + datetime.timedelta(days=-3)

print(datetime.datetime.now() + datetime.timedelta(hours=3)) #当前时间+3小时

print(datetime.datetime.now() + datetime.timedelta(minutes=30)) #当前时间+30分
print(res)

二、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) #[1, 5, 7, 3, 9]

案例:随机验证码

def make_code(n):
    res=""
    for i in range(n):
        s1=chr(random.randint(65,90))
        s2=str(random.randint(0,9))
        res+=random.choice([s1,s2])
    return res
print(make_code(6))

三、os模块

import  os
os.listdir('dirname')    列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印
print(os.listdir("."))

os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径
cmd=input(r"""
Microsoft Windows [版本 10.0.17763.1339]
(c) 2018 Microsoft Corporation。保留所有权利。

%s=====> """ %os.getcwd())
res=os.system(cmd)
print('='*100)
print(res)

print(__file__)
print(os.path.abspath(__file__))

res=os.path.split("D:/python全栈15期/day21/03 os模块.py")
print(res)

print(os.path.basename("D:/python全栈15期/day21/03 os模块.py"))
print(os.path.dirname("D:/python全栈15期/day21/03 os模块.py"))

print(os.path.exists("D:/python全栈15期/day21/"))
print(os.path.isabs("D:/python全栈15期/day21/"))
print(os.path.isabs("/python全栈15期/day21/"))

print(os.path.isabs("python全栈15期/day21/"))

print(os.path.join("a",'b','D:\c','d.txt'))


print(os.path.dirname(os.path.dirname(__file__)))

res=os.path.join(
    __file__,
    "..",
    ".."
)

print(os.path.normpath(res))


print(os.path.getsize(__file__))

四、 subprocess

import subprocess
#subprocess.PIPE 管道,相当于共享空间
# pwd ; sasdfasdf ;echo 123

obj = subprocess.Popen("diasfdafr", shell=True,
                       stdout=subprocess.PIPE,
                       stderr=subprocess.PIPE
                       )

res1=obj.stdout.read()
res2=obj.stderr.read()
# print(res1.decode('gbk'))
print(res2.decode('gbk'))
运行结果:
'diasfdafr' 不是内部或外部命令,也不是可运行的程序
或批处理文件。

五、sys模块

sys.argv           命令行参数List,第一个元素是程序本身路径
import sys

# sys.path
print(sys.argv)

# src_file = input("源文件路径:").strip()
# dst_file = input("目标文件路径:").strip()
src_file = sys.argv[1]#从cmd里获取文件路径
dst_file = sys.argv[2]

with open(r"%s" %src_file,mode='rb') as f1,open(r"%s" %dst_file,mode='wb') as f2:
    for line in f1:
        f2.write(line)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VImEqNjm-1596114951661)(C:\Users\高雨\AppData\Roaming\Typora\typora-user-images\image-20200730171216930.png)]

六、打印进度条

import time

def progress(percent):
    if percent > 1:
        percent=1
    print("\r[%-50s] %d%%" % ("#"*int(50*percent),int(100 * percent)),end='')

total_size = 1025
recv_size = 0

while recv_size < total_size:
    # 每次下载1024
    time.sleep(0.3)
    recv_size+=1024

    percent = recv_size / total_size

    progress(percent)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值