1.os模块
import os
作用:用于和操作系统进行交互
通用操作:1.获取平台信息 2.对目录操作 3.判断操作
1.1 os.name 指示正在使用的工作平台(返回操作系统类型)
对于Windows,返回nt,对于Linux,返回posix
import os
print(os.name) #nt
1.2 os.getenv(环境变量名称):读取环境变量
import os
print(os.getenv('path'))
1.3 os.path.split()
把目录名和文件名分离,以元组的形式接收
import os
print(os.path.split(r'E:\project\pyhton-learning\PyCharm_project\pythonProject3_1\main.py'))
#('E:\\project\\pyhton-learning\\PyCharm_project\\pythonProject3_1', 'main.py')
o = os.path.split(r'E:\project\pyhton-learning\PyCharm_project\pythonProject3_1\main.py')
print(o[0]) #打印目录名E:\project\pyhton-learning\PyCharm_project\pythonProject3_1
print(o[1]) #打印文件名main.py
复制当前文件的路径:Ctrl+Shift+C
1.4 os.path.dirname显示split分割的第一个元素,即目录
1.5os.path.basename显示split分割的第二个元素,即文件名
import os
print(os.path.dirname(r'E:\project\pyhton-learning\PyCharm_project\pythonProject3_1\main.py'))
#E:\project\pyhton-learning\PyCharm_project\pythonProject3_1
print(os.path.basename(r'E:\project\pyhton-learning\PyCharm_project\pythonProject3_1\main.py'))
#main.py
注意:如果目录以/结尾,就返回控制,以\结尾就会报错
1.6 os.path.exists() 判断路径(文件或目录)是否存在,存在的话就返回True,不存在就返回False
import os
print(os.path.exists(r'E:\project\pyhton-learning\PyCharm_project\pythonProject3_1\main.py')) #True
print(os.path.exists('main.py')) #True
print(os.path.exists(r'E:\project\pyhton-learning\PyCharm_project\pythonProject3_1')) #True
1.7 os.path.isfile() 判断文件是否存在
import os
print(os.path.isfile(r'E:\project\pyhton-learning\PyCharm_project\pythonProject3_1\main.py')) #True
print(os.path.isfile('main.py')) #True
print(os.path.isfile(r'E:\project\pyhton-learning\PyCharm_project\pythonProject3_1')) #False
1.8 os.path.isdir() 判断目录是否存在
import os
print(os.path.isdir(r'E:\project\pyhton-learning\PyCharm_project\pythonProject3_1\main.py')) #False
print(os.path.isdir('main.py')) #False
print(os.path.isdir(r'E:\project\pyhton-learning\PyCharm_project\pythonProject3_1')) #True
1.9 os.path.abspath() 获取当前路径下的绝对路径
import os
print(os.path.abspath('main.py')) #E:\project\pyhton-learning\PyCharm_project\pythonProject3_1\main.py
1.10 os.path.isabs() 判断是否是绝对路径
import os
print(os.path.isabs('E:\project\pyhton-learning\PyCharm_project\pythonProject3_1\main.py')) #True
2.sys模块
import sys
作用:负责程序跟Python解释器的交互
2.1 sys.getdefaultencoding():获取系统默认编码模式
import sys
print(sys.getdefaultencoding()) #utf-8
2.2 sys.path:获取环境变量路径,跟解释器有关
import sys
print(sys.path)
以列表的形式,第一项为所在的工作目录
2.3 sys.platform:获取操作系统平台名称
import sys
print(sys.platform) #win32
2.4 sys.version:获取python解释器版本信息
import sys
print(sys.version) #3.7.8 (tags/v3.7.8:4b47a5b6ba, Jun 28 2020, 08:53:46) [MSC v.1916 64 bit (AMD64)]
3.time模块
import time
三种时间表示
1.时间戳(timestamp)
2.格式化的时间字符串(format time)
3.时间元组(struct_time)
3.1 time.sleep():延时操作,以秒为单位
3.2 time.time():获取当前的时间戳,以秒计算,从1970年1月1日 00:00:00开始,到现在的时间差
返回的数据类型是浮点型
import time
print(time.time()) #1740806753.0604994
3.3 time.localtime():将一个时间戳转换为当前时区的struct_time
import time
print(time.localtime())
#time.struct_time(tm_year=2025, tm_mon=3, tm_mday=1, tm_hour=13,
# tm_min=27, tm_sec=37, tm_wday=5, tm_yday=60, tm_isdst=0)
print(type(time.localtime())) #<class 'time.struct_time'>时间元组
print(time.localtime().tm_year) #2025
3.4 asctime():获取系统当前的时间
把struct_time转换成固定的字符串表达式
import time
print(time.asctime()) #Sat Mar 1 13:31:47 2025
t = time.localtime()
print(time.asctime(t)) #Sat Mar 1 13:31:47 2025
3.5 time.ctime():获取系统当前时间,把时间戳转换成固定的字符串表达式
import time
print(time.ctime()) #Sat Mar 1 13:34:18 2025
t = time.time()
print(time.ctime(t)) #Sat Mar 1 13:35:12 2025
3.6 time.strftime(格式化字符串,struct_time):将struct_time转化成时间字符串
时间字符串支持的格式符号:
import time
print(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime()))
t = time.strftime('%Y-%m-%d %H:%M:%S',time.localtime()) #2025-03-01 13:43:56
print(type(t)) #<class 'str'>
3.7 time.strptime(时间字符串,格式化字符串)
将时间字符串转化为struct_time
import time
print(time.strptime('2025-03-01','%Y-%m-%d'))
#time.struct_time(tm_year=2025, tm_mon=3, tm_mday=1,
# tm_hour=0, tm_min=0, tm_sec=0, tm_wday=5, tm_yday=60, tm_isdst=-1)
4.logging模块
import logging
4.1作用:用于记录日志信息
4.2日志的作用:
1.程序调试
2.了解软件程序运行情况是否正常
3.软件程序运行故障分析与问题定位
logging中的等级:
4.3级别排序:从高到低
CRITICAL>ERROR>WARNING>INFO>DEBUG>NOTEST
logging默认的leval就是warning,也就是说logging只会显示级别大于等于warning的日志信息
4.4logging.basicConfig() 配置root logger参数
4.4.1.filename:指定日志文件的文件名,所有会显示的日志都会存到这个文件中去
import logging
logging.basicConfig(filename='log.log')
logging.debug('debug')
logging.info('info')
logging.warning('warning')
logging.error('error')
logging.critical('critical')
4.4.2filemode:文件的打开方式,默认是a,追加模式
也可以以w的方式进行写入
4.4.3level:指定日志显示级别 默认是警告信息warning
import logging
logging.basicConfig(filename='log.log',filemode='w',level=logging.NOTSET)
logging.debug('debug')
logging.info('info')
logging.warning('warning')
logging.error('error')
logging.critical('critical')
4.4.4 format指定日志的输出格式
import logging
logging.basicConfig(filename='log.log',filemode='w',level=logging.NOTSET,format='%(levelname)s:%(asctime)s\t%(message)s')
logging.debug('debug')
logging.info('info')
logging.warning('warning')
logging.error('error')
logging.critical('critical')
5.random模块
import random
作用:用于实现各种分布的伪随机数生成器,可以根据不同的实数分布来随机生成值
5.1random.random():产生大于0且小于1之间的数
5.2random.uniform(a,b):产生指定范围的随机小数
5.3random.randint(a,b):产生a,b范围内的随机整数,包含ab
5.4random.randrange(start,stop,[step]):产生,start,stop范围内的整数,包含开头不包含结尾,step指定产生随机的步长,随机选择一个数据
import random
print(random.random()) #0.6552382988384606
print(random.uniform(1,3)) #1.4491112184606503
print(random.randint(1,3)) #1
print(random.randrange(2,5,2)) #2(只能为2/4)
print(random.randrange(3,6)) #3/4/5