我有一个包含从0.txt
到100.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
列表中的名称相匹配,以便根据我的列表重命名文件?
答案 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])
将确保排序正确。