# Sys模块
定义
Sys模块主要负责与python解释器进行交互
属性或方法 |
描述 |
sys.argv |
获取命令行参数列表,第一个参数是程序本身 |
sys.exit(n) |
退出 Python 程序,exit(0) 表示正常退出。当参数非 0 时,会引发一个 SystemExit 异常,可以在程序中捕获该异常 |
sys.version |
获取 Python 解释程器的版本信息 |
sys.maxsize |
最大的 Int 值,在 64 位操作系统上是 263-1 |
sys.path |
返回模块的搜索路径,初始化时使用 PYTHONPATH 环境变量的值 |
sys.platform |
返回操作系统平台名称 |
sys.stdin |
输入相关 |
sys.stdout |
输出相关 |
sys.stderr |
错误相关 |
len() |
获取长度 |
sys.path.insert(index,字符) |
指定下标插入数据 |
sys.path = [] |
删除所有路径 |
sys.getfilesystemencoding() |
获取文件系统使用编码方式,默认是 UTF-8 |
sys.modules |
以字典的形式返回所有当前 Python 环境中已经导入的模块 |
sys.builtin_module_names |
返回一个列表,包含所有已经编译到 Python 解释器里的模块的名字 |
sys.modules.keys() |
返回所有已将导入模块的key |
sys.flags |
命令行标识状态信息列表 |
sys.getrefcount(object) |
返回对象的引用数量 |
sys. getrecursionlimit() |
返回 Python 最大递归深度,默认为 1000 |
sys.getsizeof(object[, default]) |
返回对象的大小 |
sys.getswitchinterval() |
返回线程切换时间间隔,默认为0.005秒 |
sys.setswitchinterval(interval) |
设置线程切换的时间间隔,单位为秒 |
sys. getwindowsversion() |
返回当前 Windows 系统的版本信息 |
sys.hash_info |
返回 Python 默认的哈希方法的参数 |
sys.implementation |
当前正在运行的 Python 解释器的具体实现,如 CPython |
sys.thread_info |
当前线程信息 Python 解释器里的模块的名字 |
sys.modules.keys() |
返回所有已将导入模块的key |
sys.flags |
命令行标识状态信息列表 |
sys.getrefcount(object) |
返回对象的引用数量 |
sys. getrecursionlimit() |
返回 Python 最大递归深度,默认为 1000 |
sys.getsizeof(object[, default]) |
返回对象的大小 |
sys.getswitchinterval() |
返回线程切换时间间隔,默认为0.005秒 |
sys.setswitchinterval(interval) |
设置线程切换的时间间隔,单位为秒 |
sys. getwindowsversion() |
返回当前 Windows 系统的版本信息 |
sys.hash_info |
返回 Python 默认的哈希方法的参数 |
sys.implementation |
当前正在运行的 Python 解释器的具体实现,如 CPython |
sys.thread_info |
当前线程信息 |
代码
#argv 获取命令行的参数
import sys
#argv第一个参数必须是文件的信息/程序信息
print(sys.argv)
print(sys.argv[3])
"""
argv 获取命令行的参数
argv 的第一个参数/下标的是0的参数,一定会是我们运行文件的信息
"""
注:在cmd里面运行python,语法:python 文件名字 参数1 参数2
多个参数之间用空格隔开
"""
sys.exit() 0是正常退出,1是不正常退出,无论是不是1都不会报错
"""
for i in [1,2,3,4,5]:
if i == 2:
sys.exit(1)
print(i) #1
#sys.version python版本号
print(sys.version) #3.7.6 (tags/v3.7.6:43364a7ae0, Dec 19 2019, 00:42:30) [MSC v.1916 64 bit (AMD64)]
#maxsize int数值可以最大是263-1
print(sys.maxsize) #9223372036854775807
#path 获取路径,返回一个list
print(sys.path)
#sys.path.insert(index,文件名字) 添加路径
sys.path.insert(0,"temp")
print(sys.path)
#sys.path=[] 删除路径
# sys.modules 获取我们导入的模块信息,返回一个字典
#print(sys.modules)
#sys.modules.keys() 只获取导入模块的名字
#print(sys.modules.keys())
#导入模块不一定是内建模块,也有可能是我们自己封装的模块
# 获取内建模块的名字
a = sys.builtin_module_names
print(a)
# Os模块
定义
os是和操作系统(windows)进行交互的,提供了访问操作系统底层的接口
Sys模块主要负责与python解释器进行交互
常用方法
方法或变量 |
用途 |
os.mkdir('dirname') |
生成单级目录,相当于shell中mkdir dirname |
os.makedirs('dirname1/dirname2') |
可生成多层递归目录 |
os.rmdir('dirname') |
删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rmdir dirname |
os.removedirs('dirname1') |
若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推 |
os.listdir('dirname') |
列出指定目录下的所有文件和子目录,包括隐藏文件并以列表方式打印 |
os.remove() |
删除一个文件 |
os.rename("oldname","newname") |
重命名文件/目录 |
os.path.abspath(path) |
返回path规范化的绝对路径 os.path.split(path) 将path分割成目录和文件名二元组返回 |
os.path.dirname(path) |
返回path的目录 |
os.path.exists(path) |
如果path存在,返回True;如果path不存在,返回False |
os.path.isabs(path) |
如果path是绝对路径,返回True |
os.path.isfile(path) |
如果path是一个存在的文件,返回True。否则返回False |
os.path.isdir(path) |
如果path是一个存在的目录,则返回True。否则返回False |
os.path.join(path1[,path2[, ...]]) |
将多个路径组合后返回,第一个绝对路径之前的参数将被忽略 |
os.path.getatime(path) |
返回path所指向的文件或者目录的最后访问时间 |
os.path.getmtime(path) |
返回path所指向的文件或者目录的最后修改时间 |
os.path.getsize(path) |
返回path的大小 |
os.getcwd() |
获取当前工作目录,即当前python脚本工作的目录路径 |
os.chdir("dirname") |
改变当前脚本工作目录;相当于shell下cd |
os.curdir |
返回当前目录: ('.') |
os.pardir |
获取当前目录的父目录字符串名:('..') |
os.stat('path/filename') |
获取文件/目录信息 |
代码
import os
#os.getcwd() 获取当前目录
#print(os.getcwd()) #D:\axc\Python\PythonTemp
"""
绝对路径/全路径:D:\axc\Python\PythonTemp\test.py
相对路径/半路经:Python\PythonTemp\test.py
想要写半路经,你的当前路径和D:\axc\Python\PythonTemp要一样
"""
#os.mkdir() 创建一个单级文件夹
#os.mkdir("D:\\axc\\Python\\PythonTemp\\temp")
#os.mkdir("temp")
#os.rmdir() 删除单级空文件夹
#os.rmdir("D:\\axc\\Python\\PythonTemp\\temp")
#os.rmdir("temp")
#os.makedirs() 创建多层文件夹
#os.makedirs("D:\\axc\\Python\\PythonTemp\\test\\2002bigdate")
#os.makedirs("test\\2002bigdate")
#os.removedirs()删除多级空目录
os.removedirs("test\\2002bigdate")
#创建一个文件夹test
#os.mkdir("test")
#在test里面创建一个文件temp.py(手动创建右键创建)
#修改文件名字temp为temp.txt
#os.rename("D:\\axc\\Python\\PythonTemp\\test\\temp.py","test\\temp.txt")
#列出test文件夹里面所有的子文件以及子文件夹
print(os.listdir("test")) #['temp.txt'] listdir只列出文件/文件夹名字
#删除test这个文件夹
os.remove("test\\temp.txt")
os.rmdir("test")
#os.path.dirname() 获取路径的父目录(上一级目录)
a = os.path.dirname("D:\\axc\\Python\\PythonTemp\\test.py")
#print(a) #D:\axc\Python\PythonTemp
#os.path.join() 将多个路径进行拼接
b = os.path.join("D:","python","p.py")
#print(b) #D:python\p.py
#os.path.split() 拆分,将文件和文件夹进行拆分.返回一个元组
c = os.path.split("D:\\axc\\Python\\PythonTemp\\test.py")
print(c) #('D:\\axc\\Python\\PythonTemp', 'test.py')
#os.path.exists() 判断文件/文件夹是否存在
os.path.isabs() #判断是否是绝对路径
os.path.isdir() #判断是否是文件夹
os.path.isfile() #判断是否是文件
# 文件模式匹配:glob模块
import os
import glob
a = os.listdir("D:\\axc\\Python\\PythonTemp")
#print(a) #只显示文件/文件夹的名字
"""
['.pytest_cache', '.vscode', 'cat.py', 'ClearWindow.py', 'count.py', 'eval.py', 'f.txt',
'foo.txt', 'out.log', 'sudo.py', 'test.py', '__pycache__', '其他文件.py']
"""
for i in glob.glob("D:\\axc\\Python\\PythonTemp\\*.py"):
print(i)
语法
#glob.glob() 进行模式匹配,返回一个迭代对象
优点
1.打印的是全路径
2.可以进行模式匹配
#日期时间相关 Datetime 模块
定义
日期和时间进行操作的内置模块:time模块、datetime模块和calendar模块
Datetime模块常用的三个类 date time datetime
一个文件是一个模块,一个模块里面有多个类,一个类有多个方法
## Date
定义
定义:class datetime.date(year, month, day)
常用的方法和属性
类方法/属性名称 |
描述 |
date.max |
date对象所能表示的最大日期:9999-12-31 |
date.min |
date对象所能表示的最小日期:00001-01-01 |
date.resolution |
date对象表示的日期的最小单位:天 |
date.today() |
返回一个表示当前本地日期的date对象 |
date.fromtimestamp(timestamp) |
根据给定的时间戳,返回一个date对象 |
d.year |
年 |
d.month |
月 |
d.day |
日 |
d.replace(year[, month[, day]]) |
生成并返回一个新的日期对象,原日期对象不变 |
d.timetuple() |
返回日期对应的time.struct_time对象 |
d.toordinal() |
返回日期是是自0001-01-01开始的第多少天 |
d.weekday() |
返回日期是星期几,[0, 6],0表示星期一 |
d.isoweekday() |
返回日期是星期几,[1, 7], 1表示星期一 |
d.isocalendar() |
返回一个元组,格式为:(year, weekday, isoweekday) |
d.isoformat() |
返回‘YYYY-MM-DD’格式的日期字符串 |
d.strftime(format) |
返回指定格式的日期字符串,与time模块的strftime(format, struct_time)功能相同 |
import datetime
dt=datetime.datetime
print(dt.today()) #2021-10-11 14:48:40.574201
print(dt.now()) #2021-10-11 14:48:40.574201
## Time
定义
class datetime.time(hour, minute, second, [microsecond[, tzinfo]]]])
常用的方法和属性
类方 |