我列出了一千个文件:
1_r.txt
2_r.txt
3_r.tet
...
999_r.txt
其中,r是随机长度的随机字母数字。 我需要使用python以数字顺序遍历文件。 我想到使用类似的东西:
count = 1
for i in os.listdir():
if i.startswith(str(count) + '_') == True:
# do stuff
print(i)
但是,上述方法不会遍历字典。我曾想过使用sorted
方法,但是我的文件不是仅按数字排序。
请帮忙。
答案 0 :(得分:2)
您可以定义一个lambda函数以传递给key
的{{1}}参数,以便按照需要的方式对sorted
进行排序。语法为:
list
然后遍历排序列表。
答案 1 :(得分:2)
您可以将sorted
与key
一起使用,这表明排序是通过分割_
字符,然后按照剩余部分的int
形式进行排序_
:
filenames = os.listdir()
sorted_filenames = sorted(filenames, key=lambda x: int(x.split('_')[0]))
然后只需遍历sorted_filenames
。