您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

在python中以特定顺序读取文件

在python中以特定顺序读取文件

文件系统上的文件未排序。您可以使用sorted()函数自己对生成文件名进行排序:

for infile in sorted(glob.glob('*.txt')):
    print "Current File Being Processed is: " + infile

请注意,os.path.join代码中的调用是无操作的;仅带有一个参数,它什么也不会做,只会使该参数保持不变。

请注意,您的文件将按字母顺序排序,该顺序位于10之前9。您可以使用自定义功能来改善排序:

import re
numbers = re.compile(r'(\d+)')
def numericalSort(value):
    parts = numbers.split(value)
    parts[1::2] = map(int, parts[1::2])
    return parts

 for infile in sorted(glob.glob('*.txt'), key=numericalSort):
    print "Current File Being Processed is: " + infile

numericalSort函数文件名中的所有数字分开,将其转换为实际数字,然后返回结果进行排序:

>>> files = ['file9.txt', 'file10.txt', 'file11.txt', '32foo9.txt', '32foo10.txt']
>>> sorted(files)
['32foo10.txt', '32foo9.txt', 'file10.txt', 'file11.txt', 'file9.txt']
>>> sorted(files, key=numericalSort)
['32foo9.txt', '32foo10.txt', 'file9.txt', 'file10.txt', 'file11.txt']
python 2022/1/1 18:26:45 有456人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶