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