优化前:
import os
for file in os.listdir('draft'):
print(file)
结果:
优化后:
def string20(txt,width=20):
"""
对字符串内的数字前添加n个'0',n = width - 数字长度, 如:-1-2- -> -00000000000000000001-00000000000000000002-
该函数主要应用于更正 os模块遍历文件时的排序方式。
:param txt: 原始字符串
:param width: 处理后的数字长度
:return: 处理后的字符串
"""
result = ''
digital = ''
for s in txt:
if s.isdigit():
digital += s
else:
if len(digital) == 0:
result += s
else:
result += '0'*(width-len(digital)) + digital + s
digital = ''
if len(digital)!=0: # 当字符串末尾是数字时,循环结束后要单独再处理
result += '0' * (width - len(digital)) + digital + s
return result
import os
for file in sorted(os.listdir('draft'),key=string20):
print(file)
结果: