如何按照列表的顺序重命名文件夹中的几个文件



我有几个包含许多文件的文件夹:

Folder
|---Folder1
|      |------File1, File2,...
|
|---Folder2
       |------File3, File4,...

我也有 my_list = [rename1, rename2, rename3, rename4]

我正在尝试重命名 [File1, File2, File3, File4]以遵循 my_list的顺序和名称。

我尝试了以下方法:

list_of_dirs = [path_to_file1, path_to_file2, path_to_file3, path_to_file4]
my_list = [rename1, rename2, rename3, rename4]
for i in list_of_dirs:
    os.rename(i, 'path_to_saving_directory' + str(j for j in my_list))

,但这会创建一个生成器对象,并包含与[rename1, rename2, rename3, rename4]不匹配的文件。

您正在尝试在两个列表上迭代。

以下是相当标准的模式。而不是打印,您需要使用OS.RENAME仍将文件重命名。

>>> list_of_paths = ['path1', 'path2', 'path3', 'path4']
>>> new_names = ['rename1', 'rename2', 'rename3', 'rename4']
>>> 
>>> 
>>> for original_path, new_name in zip(list_of_paths, new_names):
...   print(f"need to rename file at {original_path} to {new_name}")
... 
need to rename file at path1 to rename1
need to rename file at path2 to rename2
need to rename file at path3 to rename3
need to rename file at path4 to rename4
>>> 

您可以使用内置功能。

for i, j in zip(list_of_dirs, my_list):
    os.rename(i, j)

最新更新