简介
OS(operating system)模块主要用于程序同操作系统交互的接口,例如常见的路径操作、进程管理、环境参数等
常用函数
import os
# 获取当前工作的路径
os.getcwdb()
# 返回对应操作系统文件路径的分隔符
# Windows上文件路径的分隔符为\,Linux上则为/
os.sep
# 通过调用系统命令行模式,执行对应系统命令
# 在Unix上,返回值是进程的退出状态,在Windows上,返回值是系统 shell 程序在运行命令后返回的值。
# 打开系统计算器
os.system('calc')
# 返回路径下所有文件和目录的列表
os.listdir(os.getcwd())
# 深层次遍历指定路径下的所有子文件夹,返回一个由路径、文件夹列表、文件列表组成的生成器(generator)
for path,dir,file in os.walk(os.getcwd()):
print(path)
print(dir)
print(file)
# 判断目录是否存在
print(os.path.exists(os.getcwd()))
# 判断给定路径是否是文件夹
print(os.path.isdir(os.getcwd()))
# 判断给定路径是否是文件
print(os.path.isfile(os.getcwd()))
# 创建文件夹
# Attention:
# 1|创建单层文件夹:os.mkdir
# 2|递归创建多层文件夹:os.makedirs
# 3|创建文件夹前需判断文件夹是否存在
path = os.getcwd() + '\\test\\test'
if os.path.exists(path):
print('文件夹已存在')
else:
os.makedirs(path)
print('创建文件夹成功')
# 删除文件夹
# Attention:
# 1|只能删除空文件夹,非空文件夹会报错
path = os.getcwd() + '\\test\\test'
os.rmdir(path)
# 路径拼接
path = os.getcwd()
list = ['a.txt','b.doc','c.py']
for file in list:
print(os.path.join(path,file))
# 路径拆分
# 返回元组,包含绝对路径和文件名两部分
path = r'g:\Project\Python\Module_Os\a.txt'
print(os.path.split(path))
# 仅返回绝对路径
print(os.path.dirname(path))
# 仅返回文件名
print(os.path.basename(path))
# 查看文件大小
path = r'g:\\Project\\Python\\Module_Os\\Module_Os.ipynb'
print(os.path.getsize(path))
实战演练
# 获取指定目录下大于100M的文件
def getfilesize(filepath,tollist):
if os.path.isfile(filepath):
if os.path.getsize(filepath)/1024/1024 > 100:# 更改文件大小,默认100M
filelist = []
filelist.append(filepath)
filelist.append(round(os.path.getsize(filepath)/1024/1024,2))
tollist.append(filelist)
else:
pass
# msg = Exception(f'{filepath}文件路径有误')
# raise msg
def getallfilepath(lidir,allfilepath):
for i in os.listdir(lidir):
try:
if os.path.isdir(os.path.join(lidir,i)):
getallfilepath(os.path.join(lidir,i),allfilepath)
elif os.path.isfile(os.path.join(lidir,i)):
allfilepath.append(os.path.join(lidir,i))
except:
pass
def takeSecond(ele):
return ele[1]
def main():
filelists = []
tollist = []
path = r'C:\Users' # 指定路径
getallfilepath(path,filelists)
for i in filelists:
getfilesize(i,tollist)
tollist.sort(key=takeSecond,reverse=True)
print(tollist)
main()