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
可以避免异常,使代码更健壮。