目录(OS
模块)
- os模块提供了与系统目录操作相关的功能,不受平台限制
目录操作
- 目录操作就是通过
Python
来实现目录的创建,修改,遍历等功能; - 目录操作需要导入
os
模块,如下:
# 必须导入
import os
# 按需求导入
import shutil # Python内置的文件操作的高级模块
函数 | 含义 |
---|---|
os.chdir(path) | 切换目录,‘.’ 当前目录、‘..’ 上层目录、‘/’ 根目录 |
os.mkdir('文件夹名', mode=777) | 创建目录(文件夹),只能在本程序所在的文件夹创建一个文件夹,不能创建目录树,mode 为文件夹权限 |
os.makedirs('a/b/c', mode=057) | 创建多层目录,在本文件夹下创建a ,在a 下创建b ,在b 下创建c ,mode 为文件夹权限 |
os.remove('文件名') | 删除文件 |
os.rmdir(path) | 删除单级目录,文件夹为空,并且为最底层目录 |
os.removedirs(path) | 删除文件夹树,如’a/v/b‘ ,注意文件夹必须为空 |
shutil.rmtree(path) | 删除文件夹树,如’a/v/b‘ ,不管文件夹里有没有子文件都删除 |
os.getcwd() | 获取当前路径 |
os.listdir(path) | 返回指定目录下的所有文件和文件夹名,列表形式;不指定path ,默认当前目录下,支持. 、.. 、/ |
os.walk(top, topdown=True, onerror=None) | 返回当前路径下([绝对路径], [文件夹s], [文件s]) top 可以设置成‘.’ 表示当前目录 topdown=True 从外层往内层找 topdown=False 从最内层往外找应用:可以查找出当前路径下的所有文件夹和文件以及他们的路径 |
os.rename('原名', '新名') | 重命名文件,如果改名的同时,更改了目录,目录必须存在 |
os.renames('原名', '新名') | 重命名文件,如果改名的同时,更改了目录,会自动创建目录,如果旧目录只有一个文件,旧目录会删除 |
os.path.isfile() | 判断是否为文件 |
os.path.isdir() | 判断是否为目录 |
os.path.join() | 连接目录,如:path1 连接path2 为path1/path2 |
os.path.spiltext() | 将文件分割成文件名与扩展名,如分割:tme.txt 为tem 和.txt |
演示代码
import os
import shutil # 文件操作的高级模块
# 重命名,文件不存在会报错;默认重命名当前目录下的文件,也可指定路径重命名
os.rename("091文件的拷贝[复件].py", "094重命名.py")
os.rename("094新建文件夹/崇明.txt.py", "094新建文件夹/崇明.py")
# 删除文件,文件不存在会报错;默认删除当前目录下的文件,也可指定路径删除文件
os.remove("094重命名.py")
os.remove("094新建文件夹/2.txt")
# 创建单级文件夹
os.mkdir("094新建文件夹")
# 删除单级空的文件夹,不存在、不空都报错
os.rmdir("094新建文件夹")
# 获取当前操作目录的路径
print(os.getcwd())
# 切换目录
os.chdir("094新建文件夹")
print(os.getcwd())
# 查看上级目录的文件列表;如果不指定参数,默认查看的是当前目录的下文件信息
result = os.listdir("../")
# 修改文件名的同时指定路径
# 当文件夹下不只一个文件时,会新建指定名字的目录,并重命名文件
# 当文件夹下只有一个文件时,旧目录会删除,其他创建同上
os.renames("094新建文件夹/崇明.py", "094演示文件夹/鼋.txt")
# renames()修改文件名的同时更改他的目录,目录自动创建
os.renames("1.txt", "094文件/深层/22.txt")
# 删除文件夹及文件夹里面的文件
shutil.rmtree("094演示文件夹/1")
# 判断文件或文件夹是否存在 返回True和False
result = os.path.exists("DDD/111.txt")
# 获取当前路径下的所有文件和文件夹以及对应的路径
mytuple = os.walk('.', topdown=Flase)
文件操作的应用
# 批量重命名
import os
src_dir = "094演示文件夹"
# 1. 获取指定目录下的文件列表
file_list = os.listdir(src_dir)
# 2. 遍历列表对每一个原文件进行重命名操作
for file_name in file_list:
# 生成重命名后的文件名
new_file_name = "[李凡出品]-" + file_name
# 对原文件进行重命名操作
os.rename(src_dir + "/" + file_name, src_dir + "/" + new_file_name)