使用python从文件夹中按顺序重命名文件

时间:2018-03-31 01:33:14

标签: python python-2.7 list

我有一个包含从0.txt100.txt命名的文件的文件夹。 它们是从列表L按顺序创建的。

我想使用列表中的名称重命名该文件夹中的文件,但是,它们会被重命名为"错误"顺序,意味着它们不会重命名为列表。 我的代码就像:

import os
folder = r'D:\my_files'
os.chdir(folder)
for i,j in zip(os.listdir(folder), L):
    os.rename(i, j + ".txt")

其中L是包含文件名称的列表。

如何保持目录中的文件顺序与L列表中的名称相匹配,以便根据我的列表重命名文件?

1 个答案:

答案 0 :(得分:0)

根据Python documentation

  

<强> os.listdir(路径=&#39;&#39)

     

返回包含条目名称的列表   在path给出的目录中。 列表按任意顺序 ,和   不包括特殊条目&#39;。&#39;和&#39; ..&#39;即使他们是   出现在目录中。

因此,您需要在使用zip之前对文件进行排序:

for i,j in zip(sorted(os.listdir(folder), key=lambda x: int(x.split('.')[0])), L):
    # logic to rename file

使用sorted,参数key=lambda x: int(x.split('.')[0])将确保排序正确。