Python更改如何读取编号的文件

时间:2014-12-07 19:39:37

标签: python string list

我有许多文件标有字符串"示例"以数字结尾(顺序很重要)。我正在重命名所有文件(按顺序),而不是按example1,example2,example3,...,example150的顺序读取文件,它按照example1,example10,example100,example 101的顺序读取文件,例102,......,并重复这个过程。如何更改它以按顺序读取文件?谢谢!

3 个答案:

答案 0 :(得分:1)

这样的东西?

n = .. # amount of files 
for i in range(0, n) :
    f = open("example" + str(i), "r")
    # do something with your file
    f.close()

答案 1 :(得分:1)

Sort采用key参数,可用于设置排序键。对于您的问题,您可以删除所有文本,然后使用int()将字符串转换为整数排序键:

for files in sorted(files, 
                    key=lambda f: int(f.replace('example','').replace('.txt',''))):
    # process the file

答案 2 :(得分:0)

files = ['example1.txt','example2.txt', 'example10.txt','example11.txt', 'example100.txt', 'example101.txt', 'example102.txt']

def sort_numericly(file_list,prefix,sufix):
    new_file_list = []
    for f in file_list:
        f = f.strip(prefix).strip(sufix)
        new_file_list.append(int(f))
    return [prefix+ str(f) + sufixfor f in sorted(new_file_list)]

print sorted(files)
print sort_numericly(files,'example','.txt')

输出:

['example1.txt', 'example10.txt', 'example100.txt', 'example101.txt', 'example102.txt', 'example11.txt', 'example2.txt']
['example1.txt', 'example2.txt', 'example10.txt', 'example11.txt', 'example100.txt', 'example101.txt', 'example102.txt']