说明
《Python 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gairuo123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
在 Python 中,操作目录和文件可以通过 os 和 pathlib 两个模块来完成。这些模块提供了丰富的函数,用于目录和文件的增删改查(CRUD)操作,以及其他常见的文件系统操作。推荐使用 标准库 pathlib 文件系统路径 。
导入模块
import os
获取当前工作目录
current_directory = os.getcwd()
print("Current Directory:", current_directory)
切换工作目录
os.chdir('/path/to/directory')
print("Changed Directory to:", os.getcwd())
创建单个目录:
os.mkdir('new_directory')
创建多级目录:
os.makedirs('new_directory/sub_directory')
删除单个空目录:
os.rmdir('new_directory')
删除多级目录(包括非空目录):
import shutil
shutil.rmtree('new_directory')
列出目录内容
contents = os.listdir('/path/to/directory')
print(contents)
检查文件或目录是否存在
if os.path.exists('new_directory'):
print("Directory exists")
else:
print("Directory does not exist")
重命名目录
os.rename('old_directory_name', 'new_directory_name')
pathlib 是 Python 3.4 引入的一个模块,提供了面向对象的文件系统路径操作方式。详见:标准库 pathlib 文件系统路径 。
导入模块
from pathlib import Path
获取当前工作目录
current_directory = Path.cwd()
print("Current Directory:", current_directory)
切换工作目录
import os
os.chdir('/path/to/directory')
print("Changed Directory to:", Path.cwd())
创建单个目录:
Path('new_directory').mkdir()
创建多级目录:
Path('new_directory/sub_directory').mkdir(parents=True)
删除单个空目录:
Path('new_directory').rmdir()
删除多级目录(包括非空目录):
import shutil
shutil.rmtree('new_directory')
列出目录内容
contents = list(Path('/path/to/directory').iterdir())
print(contents)
检查文件或目录是否存在
if Path('new_directory').exists():
print("Directory exists")
else:
print("Directory does not exist")
重命名目录
Path('old_directory_name').rename('new_directory_name')
以下是一个综合示例,展示如何使用 os 和 pathlib 模块进行常见的目录和文件操作:
import os
from pathlib import Path
import shutil
# 获取当前工作目录
current_directory = os.getcwd()
print("Current Directory (os):", current_directory)
current_directory = Path.cwd()
print("Current Directory (pathlib):", current_directory)
# 切换工作目录
os.chdir('/tmp')
print("Changed Directory (os) to:", os.getcwd())
os.chdir('/home')
print("Changed Directory (os) to:", Path.cwd())
# 创建目录
os.mkdir('test_directory')
Path('test_directory_pathlib').mkdir()
# 创建多级目录
os.makedirs('test_directory/nested_directory')
Path('test_directory_pathlib/nested_directory').mkdir(parents=True)
# 列出目录内容
print("Contents (os):", os.listdir('/tmp'))
print("Contents (pathlib):", list(Path('/tmp').iterdir()))
# 检查目录是否存在
if os.path.exists('test_directory'):
print("Directory exists (os)")
else:
print("Directory does not exist (os)")
if Path('test_directory_pathlib').exists():
print("Directory exists (pathlib)")
else:
print("Directory does not exist (pathlib)")
# 重命名目录
os.rename('test_directory', 'renamed_directory')
Path('test_directory_pathlib').rename('renamed_directory_pathlib')
# 删除目录
shutil.rmtree('renamed_directory')
shutil.rmtree('renamed_directory_pathlib')
以上代码示例涵盖了使用 os 和 pathlib 模块进行目录和文件的增删改查操作。根据实际需求,可以选择其中一个模块来进行文件系统操作。pathlib 提供了更现代和面向对象的接口,推荐在新项目中使用。
更新时间:2024-06-23 16:52:23 标签:python 目录 文件