time,datetime,random,os,sys模块

今日内容详细

time模块

时间的三种格式
1.时间戳:从19701月开始到现在的秒数,他是一个数字

2.结构化时间:不是给我们看的,让计算机看的,他是时间之间相互转换的时候的中间桥梁

3.格式化时间:就是符合我们人类的习惯的时间格式
		2023-09-21 15:05:04

#模块的使用
time.time() #time.time用于返回当前的系统时间(以秒为单位
time.sleep() #睡眠时间,停住多少秒

%y 两位数的年份表示(00-99)
%Y 四位数的年份表示(000-9999)
%m 月份(01-12)
%d 月内中的某一天(0-31)
%H 24小时制小时数(0-23)
%I 12小时制小时数(01-12)
%M 分钟数(00-59)
%S 秒(00-59)
%a 本地简化星期名称
%A 本地完整星期名称
%b 本地简化的月份名称
%B 本地完整的月份名称
%c 本地相应的日期表示和时间表示
%j 年内的一天(001-366)
%p 本地A,M.或P,M.的等价符
%U 一年中的星期数(00-53)星期天为星期的开始
%w 星期(0-6),星期天为星期的开始
%W 一年中的星期数(0-53)星期一为星期的开始
%x 本地相应的日期表示
%X 本地相应的时间表示
%Z 当前时区的名称
%% %号本身


print(time.strftime("%Y-%m-%d %X")) #字符串时间,当前时间

print(time.strftime('%Y-%m-%d %H:%M:%S')) #当前时间
print(time.strftime('%Y-%m-%d %H-%M-%S')) #年月日,小时分钟秒

res=time.localtime() #结构化时间
print(res) 
print(res.tm_year) #可以单独的取某一个时间
print(res.tm_mon)
print(res[0]) #可以索引取值
print(res[1])

#时间戳转化为结构化时间
res=time.gmtime(160000000) #时间戳转换为结构化时间
print(res)

res=time.localtime(170000000) #时间戳转换为结构化时间
print(res)

res=time.localtime(1500000)
res1=time.mktime(res) #结构化转化为时间戳
print(res1)

#结构化时间转为字符串时间
res=time.strftime('%Y-%m-%d %X')
res1=time.strftime('%Y-%m-%d',time.localtime(150000000))
print(res1)


#字符串时间转化为结构化时间
res=time.strptime('2017-9-18','%Y-%m-%d')
print(res)

image-20230921155806432

datetime模块

import datetime
res=datetime.datetime.today() #转换为当前时间
res1=datetime.datetime.now()
print(res,res1)

res=datetime.date.today()
print(res) #只返回年月日
res=datetime.date.today()
print(res.year)
print(res.month)
print(res.day)
print(res.weekday()) #西方时间

time.timedelta可以对时间进行操作
delta=datetime.timedelta(days=7) #表示7天的时间差
print(delta)
today=datetime.datetime.today()
delta=datetime.timedelta(days=7,hours=10) #表示7天的时间差
print(today+delta) #2023-09-29 02:15:08.162911

print(datetime.datetime.utcnow()) #utc时间

random模块

生成随机数模块,也是内置的模块,直接使用
import random

print(random.random()) #生成一个大于0且小于1的小数

print(random.uniform(1,3)) #随机生成大于小于3的小数

print(random.randint(1,10))#随机生成 >=1 and <= 10之间的数

print(random.randrange(1,10)) #随机生成 >=1 and < 10 之间的数
print(random.randrange(1,10,2)) #随机生成 >=1 and < 10 之间的奇数

print(random.choice([1,2,3,[1,2,3,4]])) #随机返回一个

print(random.choice(['一等奖','二等奖','三等奖']))#随机抽奖

print(random.sample([1,2,[20,25],10,90],2))#列表元素任意两个组合

item=[1,2,3,4,5,6,678,0]
random.shuffle(item) #打乱次序,洗牌,改变原值
print(item)  

小练习:
"""随机验证码"""
# 1. 数字、字母(大写、小写的)
# 2. 位数(4位、5位、6位)
def get_num(n=4):
    # code='SF'
    sum=''
    for i in range(n):#8 #1
        random_int = str(random.randint(1, 9))
        random_upper = chr(random.randint(97, 122))
        random_lower = chr(random.randint(65, 90))
        #random_get = str(random.randint(1, 9))
        tmp = random.choice([random_int,random_lower,random_upper])
        sum+=tmp
    return sum
print(get_num(8))

#生成随机SF订单号
def get_num(n=4):
    # date1 = time.strftime('%Y%m%d%H%M%S')
    code='SF'
    sum=''
    for i in range(n):#8 #1
        random_int = str(random.randint(100, 999))
        date1=time.strftime('%Y%m%d%H%M')
        date1+=random_int
        code+=date1
        return code
print(get_num(20))

OS模块

OS模块是与操作系统交互的一个接口
import os

# os.mkdir('myfile') #在当前python目录中创建目录
os.mkdir(r'F:\test') #在win盘符下创建目录

os.makedirs('myfile/mysecond/mythird') #可以递归创建目录 相当于mkdir -R

os.rmdir('myfile/mysecond/mythird') #必须写绝对路径才可被删除

os.removedirs(r'F:\Python 练习\python20\test\myfile/mysecond') #目录为空则删除

print(os.listdir(r'F:\Python 练习\python20\test')) #列出指定目录的所有文件和子目录,包括隐藏文件

os.remove('a.txt')#移除一个文件

os.rename('a.txt','data.txt')#给某个文件改名,重命名文件

print(os.stat('data.txt')) #查看文件/目录信息
print(os.stat(r'F:\Python 练习\python20\test'))

os.system('dir') #运行shell命令,直接在python解释器显示

res=os.popen('dir').read() #运行shell命令,获得执行结果
print(res)

res=os.getcwd() #获取当前工作目录,即当前python脚本工作的目录路径
print(res)

res=os.path.abspath(r'F:\Python 练习\python20\test')
print(res) #返回path规范好的绝对路径

res=os.path.abspath(r'aaa')
print(res) #返回path规划好的绝对路径

res=os.path.dirname(r'F:\Python 练习\python20\test')
print(res)#返回path的目录,其实就是os.path.split(path)的第一个目录,切除文件

res=os.path.dirname(os.path.dirname(os.path.dirname(r'F:\Python 练习\python20\test')))
print(res)

res=os.path.basename(r'F:\Python 练习\python20\test/data.txt')
print(res) #返回path最后的文件名

res=os.path.exists(r'F:\Python 练习\python20\test/data.txt')
print(res) #判断文件是否存在

res=os.path.exists(r'F:\Python 练习\python20\test')
print(res) #判断文件夹是否存在

res=os.path.isabs(r'F:\Python 练习\python20\test/data.txt')
print(res)#如果path是绝对路径,返回True,如果不是返回False

res=os.path.isfile(r'F:\Python 练习\python20\test\data.txt')
res1=os.path.isfile(r'F:\Python 练习\python20\test\d1.txt')
print(res) #如果path是一个存在的文件,返回True,否则返回False
print(res1) #如果path是一个存在的文件,返回True,否则返回False

res=os.path.join('bbb','aaa') #bbb\aaa
print(res) #join将多个路径组合合并,join会检测系统按照系统的路径间隔符合并

res=os.path.getatime(r'F:\Python 练习\python20\test\data.txt')
print(res) #返回path所指向的文件或者目录的最后访问时间

res=os.path.getsize(r'F:\Python 练习\python20\test\data.txt')
print(res) #判断文件是否有内容,按照字节输出
__file__ #获取当前文件的路径

小视频练习:

basedir = os.path.dirname((os.path.abspath(__file__)))
res = os.path.join(basedir, '小视频')
res1_list = os.listdir(r'%s' % res)

while True:
    for i, j in enumerate(range(len(res1_list))):
        print(i + 1, res1_list[j])

    choice = input(':').strip() #1

    # 1.判断输入的内容必须是数字
    if choice.isdigit(): 
    # 2. 输入的数字必须是文件的个数
    # 1,2,3,4
        choice = int(choice)   #1
        if choice in range(1, len(res1_list) + 1): # 1 in 5
        #3.拼接成:F:\Python 练习\python20\test\小视频\jerry老师.mp4
            vedio_path=os.path.join(res,res1_list[choice-1])
                        #输入1取的就是索引为0的jerry,前面从1开始,索引从0开始
            print(vedio_path)

sys模块

sys模块是与python解释器交互的一个接口

sys.argv #命令行参数list,第一个元素是程序本身路径
sys.exit(n) #退出程序,正常退出时exit(0),错误退出											sys.exit(1)
sys.version #获取python解释程序的版本信息
sys.path  #返回模块的搜索路径,初始化时使用PYTHON环境变量的值

sys.platform 返回操作系统平台名称


posted @   家购诗  阅读(12)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
点击右上角即可分享
微信分享提示