Skip to main content

02-目录常用操作

目录常用操作

Python 处理目录的常见操作主要包括创建、删除、遍历、重命名、获取当前目录等,下面是一些示例:

1.创建目录

使用 os.mkdir()os.makedirs() 创建目录:

import os
# 创建单级目录
os.mkdir("test_dir")

# 创建多级目录(如果上级目录不存在)
os.makedirs("parent_dir/child_dir")

2.删除目录

使用 os.rmdir()shutil.rmtree() 删除目录:

import shutil

# 删除空目录
os.rmdir("test_dir")

# 递归删除非空目录
shutil.rmtree("parent_dir")

3.列出目录内容

使用 os.listdir() 获取目录下的文件和子目录:

directory = "."
# 列出当前目录下的文件和文件夹
print(os.listdir(directory))

也可以用 os.scandir()pathlib.Path.iterdir() 获取更详细的信息:

# 列出目录内容
print("方式一列出当前目录下的内容:\n")
import os
import pathlib

directory = "."
with os.scandir(directory) as entries:
for entry in entries:
print(entry.name, "is directory" if entry.is_dir() else "is file")

print("方式二列出当前目录下的内容:\n")
# 也可以使用 pathlib.Path.iterdir() 获取更详细的信息
from pathlib import Path

path = Path(".")
for x in path.iterdir():
print(x.name, "is directory" if x.is_dir() else "is file")

4.检查目录是否存在

使用 os.path.exists() 检查目录是否存在:

if os.path.exists("test_dir"):
print("目录存在")
else:
print("目录不存在")

还可以用 os.path.isdir() 仅检查是否是目录:

if os.path.isdir("test_dir"):
print("这是一个目录")

5.获取当前工作目录

使用 os.getcwd() 获取当前工作目录:

print(os.getcwd())

6.修改当前工作目录

使用 os.chdir() 切换工作目录:

os.chdir(r"C:\Users\EDY\code\python-tutorial")
print("当前目录: ", os.getcwd())

7.重命名目录

使用 os.rename() 重命名目录:

os.rename("old_dir", "new_dir")

8.遍历目录及其子目录

使用 os.walk() 递归遍历目录:

for root, dirs, files in os.walk("."):
print("当前目录:", root)
print("子目录:", dirs)
print("文件:", files)

输出:

当前目录: .
子目录: []
文件: ['01_文件编码.py', '02_文件的读取.py', '02_文件读取的课后练习.py', '03_文件写入.py', '04_文件操作综合案例.py', '05_目录常用操作.py', 'bill.txt', 'word.txt', 'word.txt.bak', '__init__.py']

9.使用 pathlib 进行目录操作

从 Python3.4 开始,推荐使用 pathlib

from pathlib import Path

# 创建目录
Path("new_dir").mkdir(parents=True, exist_ok=True)

# 删除目录
Path("new_dir").rmdir()

# 遍历目录
for file in Path(".").iterdir():
print(file)
  • exist_ok=True:如果目录已经存在,不会报错,代码会继续执行。
  • exist_ok=False(默认值):如果已存在,会抛出 FileExistsError

因此,在不确定目录是否存在的情况下,使用 exist_ok=True 可以避免异常,使代码更健壮。