python - 未排序的文件名集
问题描述
我正在使用os.walk
生成器来填充一组文件名,以便以后使用以下命令进行操作:
file_path = '/home/user/Developer/10/'
list_of_files = {}
cnt = 0
for (dirpath, dirnames, filenames) in os.walk(file_path):
for filename in filenames:
if filename.endswith('.xml'):
list_of_files[cnt] = os.sep.join( [dirpath, filename] )
cnt += 1
排序list_of_files
为:
{0: '/home/user/Developer/10/2/test/channe 1_UTC_DEtoSE_183126.585.xml',
1: '/home/user/Developer/10/2/test/channe 1_UTC_DEtoSE_183216.572.xml',
2: '/home/user/Developer/10/2/test/channe 1_UTC_DEtoSE_183123.015.xml',
3: '/home/user/Developer/10/2/test/channe 1_UTC_DEtoSE_183058.016.xml',
4: '/home/user/Developer/10/2/test/channe 1_UTC_DEtoSE_183130.151.xml',
5: '/home/user/Developer/10/2/test/channe 1_UTC_DEtoSE_183140.873.xml',
6: '/home/user/Developer/10/2/test/channe 1_UTC_DEtoSE_183223.729.xml',
7: '/home/user/Developer/10/2/test/channe 1_UTC_DEtoSE_183054.451.xml',
8: '/home/user/Developer/10/2/test/channe 1_UTC_DEtoSE_183148.014.xml',
9: '/home/user/Developer/10/2/test/channe 1_UTC_DEtoSE_183202.296.xml'}
我知道 python 在填充列表时不会对文件名进行排序,但我的印象是集合是自排序的?如果不是,我如何按文件名按字母数字顺序对这个集合进行排序?如果我使用sorted()
if 返回一个带有设置元素编号的列表对象,这是非常没用的。
解决方案
我不确定下面的片段是否会有所帮助;基本上,您按字典的值(不是键)排序。
for v in sorted(list_of_files.values()):
print(v)
推荐阅读
- python - 使用 beautifulsoup4 从 div 中获取文本
- php - Slim 3 - 从中间件访问 URI 参数
- javascript - 将数据从 simple_form 发送到 javascript
- django - 如何使用 django_filter 进行分页
- python - python将长函数转换为类
- python - 编写可与 python.org Python 和 Anaconda 一起使用的 setup.py 是否可行?
- javascript - jQuery 移动本地存储
- java - 拍照并获取位图和 Uri - android
- c# - 首次请求时自动登录
- java - ElasticSearch Java API 多重过滤器无法正常工作