Python 文件以及文件夹改名
在 Python 中,使用 os
模块可以方便地对文件及文件夹进行重命名操作。以下是一些常用的方法和示例:
使用 os.rename
函数重命名文件和文件夹
os.rename
函数可以用来重命名文件或文件夹。其基本语法如下:
import os
os.rename(src, dst)
src
是源文件或文件夹的路径。dst
是目标文件或文件夹的新路径。
重命名文件
import os
def rename_file(src, dst):
try:
os.rename(src, dst)
print(f"文件已重命名为: {dst}")
except FileNotFoundError:
print(f"文件 {src} 未找到")
except PermissionError:
print(f"权限不足,无法重命名 {src}")
# 示例调用
rename_file('old_file.txt', 'new_file.txt')
重命名文件夹
import os
def rename_folder(src, dst):
try:
os.rename(src, dst)
print(f"文件夹已重命名为: {dst}")
except FileNotFoundError:
print(f"文件夹 {src} 未找到")
except PermissionError:
print(f"权限不足,无法重命名 {src}")
# 示例调用
rename_folder('old_folder', 'new_folder')
使用 pathlib
模块重命名文件和文件夹
pathlib
是一个更现代、更面向对象的文件系统路径操作模块。使用 Path.rename
方法可以重命名文件或文件夹。
重命名文件
from pathlib import Path
def rename_file(src, dst):
src_path = Path(src)
dst_path = Path(dst)
try:
src_path.rename(dst_path)
print(f"文件已重命名为: {dst}")
except FileNotFoundError:
print(f"文件 {src} 未找到")
except PermissionError:
print(f"权限不足,无法重命名 {src}")
# 示例调用
rename_file('old_file.txt', 'new_file.txt')
重命名文件夹
from pathlib import Path
def rename_folder(src, dst):
src_path = Path(src)
dst_path = Path(dst)
try:
src_path.rename(dst_path)
print(f"文件夹已重命名为: {dst}")
except FileNotFoundError:
print(f"文件夹 {src} 未找到")
except PermissionError:
print(f"权限不足,无法重命名 {src}")
# 示例调用
rename_folder('old_folder', 'new_folder')
处理文件及文件夹改名的注意事项
- 路径存在性检查:在重命名之前,确保源路径存在,否则会抛出
FileNotFoundError
异常。 - 权限检查:确保有足够的权限执行重命名操作,否则会抛出
PermissionError
异常。 - 目标路径检查:如果目标路径已经存在,重命名操作将会覆盖目标路径的文件或文件夹,这可能会导致数据丢失。
综合示例
以下是一个综合示例,展示如何使用 os
模块和 pathlib
模块来重命名文件和文件夹:
import os
from pathlib import Path
# 使用 os 模块重命名文件和文件夹
def rename_with_os(src, dst):
try:
os.rename(src, dst)
print(f"{src} 已重命名为: {dst}")
except FileNotFoundError:
print(f"{src} 未找到")
except PermissionError:
print(f"权限不足,无法重命名 {src}")
# 使用 pathlib 模块重命名文件和文件夹
def rename_with_pathlib(src, dst):
src_path = Path(src)
dst_path = Path(dst)
try:
src_path.rename(dst_path)
print(f"{src} 已重命名为: {dst}")
except FileNotFoundError:
print(f"{src} 未找到")
except PermissionError:
print(f"权限不足,无法重命名 {src}")
# 示例调用
rename_with_os('old_file.txt', 'new_file.txt')
rename_with_os('old_folder', 'new_folder')
rename_with_pathlib('old_file.txt', 'new_file_pathlib.txt')
rename_with_pathlib('old_folder', 'new_folder_pathlib')
通过这些示例,你可以选择适合自己需求的方法来重命名文件和文件夹。os
模块适合于传统的脚本和小项目,而 pathlib
模块则更现代,适合于面向对象的编程风格。
License:
CC BY 4.0