你可以编写一个Python脚本来将文件重命名为其所在文件夹的名称。以下是一个示例脚本,它会遍历指定目录中的所有文件,并将每个文件重命名为其所在文件夹的名称。
import os
def rename_files_to_folder_name(root_dir):
for dirpath, dirnames, filenames in os.walk(root_dir):
for filename in filenames:
# 获取文件的完整路径
file_path = os.path.join(dirpath, filename)
# 获取文件夹名称
folder_name = os.path.basename(dirpath)
# 获取文件的扩展名
file_extension = os.path.splitext(filename)[1]
# 构建新的文件名
new_filename = folder_name + file_extension
# 构建新的文件路径
new_file_path = os.path.join(dirpath, new_filename)
# 重命名文件
os.rename(file_path, new_file_path)
print(f'Renamed: {file_path} -> {new_file_path}')
if __name__ == "__main__":
# 指定要处理的根目录
root_directory = "path/to/your/root/directory"
rename_files_to_folder_name(root_directory)
rename_files.py
。root_directory
变量的值修改为你要处理的根目录的路径。例如,如果你要处理/home/user/documents
目录中的文件,将其修改为:root_directory = "/home/user/documents"
python rename_files.py
以下是一个改进版本的脚本,避免文件覆盖:
import os
def rename_files_to_folder_name(root_dir):
for dirpath, dirnames, filenames in os.walk(root_dir):
for filename in filenames:
# 获取文件的完整路径
file_path = os.path.join(dirpath, filename)
# 获取文件夹名称
folder_name = os.path.basename(dirpath)
# 获取文件的扩展名
file_extension = os.path.splitext(filename)[1]
# 构建新的文件名
new_filename = folder_name + file_extension
new_file_path = os.path.join(dirpath, new_filename)
# 避免文件覆盖
counter = 1
while os.path.exists(new_file_path):
new_filename = f"{folder_name}_{counter}{file_extension}"
new_file_path = os.path.join(dirpath, new_filename)
counter += 1
# 重命名文件
os.rename(file_path, new_file_path)
print(f'Renamed: {file_path} -> {new_file_path}')
if __name__ == "__main__":
# 指定要处理的根目录
root_directory = "path/to/your/root/directory"
rename_files_to_folder_name(root_directory)
这个改进版本会在文件名冲突时添加一个计数器,避免文件覆盖。
领取专属 10元无门槛券
手把手带您无忧上云