Python 中的os模块(操作系统相关)
(1) 文件和文件夹的操作相关
- os.makedirs(‘dirname1/dirname2’) ,生成多层递归目录
- os.removedirs(‘dirname1’), 若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,以此类推
- os.mkdir(‘dirname1’), 生成单级目录,相当于shell中的mkdir dirname
- os.rmdir(‘dirname’), 删除单级目录,若目录不为空报错,相当于shell中的 rmdir dirname
- os.listdir(‘dirname’), 列出指定目录下的所有文件和子目录,包含隐藏文件,并以列表的方式打印
- os.remove(‘dirname’), 删除一个文件
- os.rename(‘oldname’,‘newname’), 重命名文件/目录
- os.stat(‘path/filename’), 获取文件,目录信息
(2) 执行操作系统的命令相关
- os.system(‘bash command’), 运行shell命令,直接显示,没有返回值(适合做实际的操作)
- os.popen(‘bash command’), 运行shell命令,获取执行结果,然后用read方法获取结果
- os.getcwd(), 获取当前工作目录,即当前python脚本工作的目录路径
- os.chdir(‘dirname’), 改变当前脚本的工作目录,相当于shell下的cd
(3) 处理路径相关(os.path)
- os.path.absth(path), 返回path规范的绝对路径
- os.path.split(path), 将path分割成目录和文件名二元组返回
- os.path.dirname(path), 返回path的路径,其实就是os.path.split(path)的第一个元素
- os.path.basename(path), 返回path最后的文件名,如path以/或\结尾,那么就会返回空值,即os.path.split(path)的第二个元素
- os.path.exists(path), 如果path存在返回True,不存在返回False
- os.path.isabs(path), 如果是绝对路径返回True,否则返回False
- os.path.isfile(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(文件夹不能准确统计)的大小(字节数)
(4) 输出操作系统的相关信息
- os.name, 输出字符串指示当前使用的平台
- os.sep, 输出操作系统特定的路径分割符,win下为’\’,Linux下为’/’
- os.pathsep, 输出用于分割文件路径的字符串,win下为;,Linux下为:
- os.linesep, 输出当前平台使用的行终止符,win下为’\t\n’,Linux下为’\n’
(5) os模块的应用
- 获取文件夹的真实大小(这里采用的是递归)
import os
loc='D:/A个人文档'
lst=[]
def search(loc):
if os.path.isdir(loc):
dirs = os.listdir(loc)
for ele in dirs:
ele=loc+'/'+ele
if os.path.isdir(ele):
search(ele)
if os.path.isfile(ele):
lst.append(ele)
if os.path.isfile(loc):
lst.append(loc)
S=0
for ele in lst:
S=S+os.path.getsize(ele)
return S
ret=search(loc)
print(ret)
运行结果如图: