创建删除文件夹、文件(pathlib 模块)
pathlib
是 Python 3.4 引入的一个模块,提供了更现代、更面向对象的文件和目录操作接口。以下是如何使用 pathlib
模块来创建和删除文件夹及文件。
使用 pathlib
模块
创建文件夹
使用 pathlib
可以方便地创建单级或多级目录。
示例:创建单级目录
from pathlib import Path
def create_single_directory(directory):
path = Path(directory)
try:
path.mkdir()
print(f"目录 {directory} 创建成功")
except FileExistsError:
print(f"目录 {directory} 已经存在")
except Exception as e:
print(f"创建目录 {directory} 时发生错误: {e}")
# 示例调用
create_single_directory('new_folder_pathlib')
示例:递归创建多级目录
from pathlib import Path
def create_multiple_directories(directory):
path = Path(directory)
try:
path.mkdir(parents=True)
print(f"目录 {directory} 及其所有子目录创建成功")
except FileExistsError:
print(f"目录 {directory} 已经存在")
except Exception as e:
print(f"创建目录 {directory} 时发生错误: {e}")
# 示例调用
create_multiple_directories('parent_folder_pathlib/child_folder_pathlib')
删除文件夹
使用 pathlib
可以删除单级目录,如果目录不为空则会引发异常。可以使用递归删除函数来删除目录及其所有内容。
示例:删除单级空目录
from pathlib import Path
def delete_single_directory(directory):
path = Path(directory)
try:
path.rmdir()
print(f"目录 {directory} 删除成功")
except FileNotFoundError:
print(f"目录 {directory} 不存在")
except OSError:
print(f"目录 {directory} 非空,无法删除")
except Exception as e:
print(f"删除目录 {directory} 时发生错误: {e}")
# 示例调用
delete_single_directory('new_folder_pathlib')
示例:递归删除目录及其所有内容
from pathlib import Path
import shutil
def delete_multiple_directories(directory):
path = Path(directory)
try:
shutil.rmtree(path)
print(f"目录 {directory} 及其所有子目录删除成功")
except FileNotFoundError:
print(f"目录 {directory} 不存在")
except Exception as e:
print(f"删除目录 {directory} 时发生错误: {e}")
# 示例调用
delete_multiple_directories('parent_folder_pathlib')
创建文件
使用 pathlib
的 Path.write_text()
方法可以方便地创建文件并写入内容。
示例:创建文件并写入内容
from pathlib import Path
def create_file(file_path, content=''):
path = Path(file_path)
try:
path.write_text(content)
print(f"文件 {file_path} 创建成功")
except Exception as e:
print(f"创建文件 {file_path} 时发生错误: {e}")
# 示例调用
create_file('example_file_pathlib.txt', 'Hello, world!')
删除文件
使用 pathlib
的 Path.unlink()
方法可以删除文件。
示例:删除文件
from pathlib import Path
def delete_file(file_path):
path = Path(file_path)
try:
path.unlink()
print(f"文件 {file_path} 删除成功")
except FileNotFoundError:
print(f"文件 {file_path} 不存在")
except Exception as e:
print(f"删除文件 {file_path} 时发生错误: {e}")
# 示例调用
delete_file('example_file_pathlib.txt')
综合示例
以下是一个综合示例,展示如何使用 pathlib
模块来创建和删除文件夹及文件:
from pathlib import Path
import shutil
# 创建单级目录
def create_single_directory(directory):
path = Path(directory)
try:
path.mkdir()
print(f"目录 {directory} 创建成功")
except FileExistsError:
print(f"目录 {directory} 已经存在")
except Exception as e:
print(f"创建目录 {directory} 时发生错误: {e}")
# 递归创建多级目录
def create_multiple_directories(directory):
path = Path(directory)
try:
path.mkdir(parents=True)
print(f"目录 {directory} 及其所有子目录创建成功")
except FileExistsError:
print(f"目录 {directory} 已经存在")
except Exception as e:
print(f"创建目录 {directory} 时发生错误: {e}")
# 删除单级空目录
def delete_single_directory(directory):
path = Path(directory)
try:
path.rmdir()
print(f"目录 {directory} 删除成功")
except FileNotFoundError:
print(f"目录 {directory} 不存在")
except OSError:
print(f"目录 {directory} 非空,无法删除")
except Exception as e:
print(f"删除目录 {directory} 时发生错误: {e}")
# 递归删除目录及其所有内容
def delete_multiple_directories(directory):
path = Path(directory)
try:
shutil.rmtree(path)
print(f"目录 {directory} 及其所有子目录删除成功")
except FileNotFoundError:
print(f"目录 {directory} 不存在")
except Exception as e:
print(f"删除目录 {directory} 时发生错误: {e}")
# 创建文件并写入内容
def create_file(file_path, content=''):
path = Path(file_path)
try:
path.write_text(content)
print(f"文件 {file_path} 创建成功")
except Exception as e:
print(f"创建文件 {file_path} 时发生错误: {e}")
# 删除文件
def delete_file(file_path):
path = Path(file_path)
try:
path.unlink()
print(f"文件 {file_path} 删除成功")
except FileNotFoundError:
print(f"文件 {file_path} 不存在")
except Exception as e:
print(f"删除文件 {file_path} 时发生错误: {e}")
# 示例调用
create_single_directory('example_folder_pathlib')
create_multiple_directories('parent_folder_pathlib/child_folder_pathlib')
create_file('example_folder_pathlib/example_file.txt', 'Hello, world!')
delete_file('example_folder_pathlib/example_file.txt')
delete_single_directory('example_folder_pathlib')
delete_multiple_directories('parent_folder_pathlib')
通过这些示例,你可以使用 pathlib
模块来方便地创建和删除文件夹及文件。pathlib
提供了更现代和面向对象的接口,使得文件系统操作更加简洁和易于维护。
License:
CC BY 4.0