目录(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下创建cmode为文件夹权限

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连接path2path1/path2

os.path.spiltext()

将文件分割成文件名与扩展名,如分割:tme.txttem.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)