按数字顺序遍历字典中的文件

时间:2019-03-05 17:08:13

标签: python

我列出了一千个文件:

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方法,但是我的文件不是仅按数字排序。 请帮忙。

2 个答案:

答案 0 :(得分:2)

您可以定义一个lambda函数以传递给key的{​​{1}}参数,以便按照需要的方式对sorted进行排序。语法为:

list

然后遍历排序列表。

答案 1 :(得分:2)

您可以将sortedkey一起使用,这表明排序是通过分割_字符,然后按照剩余部分的int形式进行排序_

filenames = os.listdir()
sorted_filenames = sorted(filenames, key=lambda x: int(x.split('_')[0]))

然后只需遍历sorted_filenames