Я использую Python 2.5 (r25: 51908, 19 сентября 2006 г., 09:52:17) [MSC v.1310 32 бит (Intel)] на win 32
Когда я спрашиваю Python
>>> "u11-Phrase 099.wav" < "u11-Phrase 1000.wav"
True
Отлично. Когда я спрашиваю
>>> "u11-Phrase 100.wav" < "u11-Phrase 1000.wav"
True
Это тоже хорошо. Но , когда я спрашиваю
>>> "u11-Phrase 101.wav" < "u11-Phrase 1000.wav"
False
Таким образом, согласно Python, «u11-Phrase 100.wav» предшествует «u11-Phrase 1000.wav», а «u11-Phrase 101.wav» следует после «u11-Phrase 1000.wav»! И это проблематично для меня, потому что я пытаюсь написать программу переименования файлов, и такая сортировка нарушает функциональность.
Что я могу сделать, чтобы преодолеть это? Должен ли я написать свою собственную функцию cmp и протестировать ее на крайние случаи, или есть намного более простой ярлык, чтобы дать мне нужный порядок?
С другой стороны, если я изменю строки, такие как
>>> "u11-Phrase 0101.wav" < "u11-Phrase 1000.wav"
True
Однако эти строки взяты из списка файлов каталога, например:
files = glob.glob('*.wav')
files.sort()
for file in files:
...
Так что я бы предпочел не делать хирургические операции на струнах после того, как они были созданы glob. И нет, я тоже не хочу менять оригинальные имена файлов в этой папке.
Есть подсказки?