मैं अजगर 2.5 चल रहा हूँ (R25: 51,908 Sep 19, 2006, 09:52:17) [एमएससी v.1310 32 बिट (इंटेल)] जीत 32पायथन "u11-वाक्यांश 101.wav" से पहले "u11-वाक्यांश 101.wav"; मैं इससे कैसे उबरूं?
पर जब मैं अजगर
पूछ रहा हूँ>>> "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
पूछना तो अनुसार अजगर "यू 11-वाक्यांश 100.wav" पहले "यू 11-वाक्यांश 1000.wav" लेकिन "यू 11-वाक्यांश 101.wav" आता है के बाद "यू 11-वाक्यांश 1000 आता है .wav "! और यह मेरे लिए समस्याग्रस्त है क्योंकि मैं एक फ़ाइल नामकरण कार्यक्रम लिखने की कोशिश कर रहा हूं और इस प्रकार की सॉर्टिंग कार्यक्षमता को तोड़ देती है।
इस पर काबू पाने के लिए मैं क्या कर सकता हूं? क्या मुझे अपना स्वयं का सीएमपी फ़ंक्शन लिखना चाहिए और किनारे के मामलों के लिए परीक्षण करना चाहिए या क्या मुझे आदेश देने के लिए एक बहुत ही सरल शॉर्टकट है?
दूसरी ओर हालांकि उन तार जैसे निर्देशिका की फ़ाइल सूची से आते हैं अगर मैं इस तरह के
>>> "u11-Phrase 0101.wav" < "u11-Phrase 1000.wav"
True
के रूप में तार को संशोधित:
files = glob.glob('*.wav')
files.sort()
for file in files:
...
तो मैं नहीं बल्कि शल्य ऐसा नहीं होता ग्लोब द्वारा बनाए जाने के बाद तारों पर संचालन। और नहीं, मैं उस फ़ोल्डर में मूल फ़ाइल नाम भी बदलना नहीं चाहता हूं।
कोई संकेत?
प्राकृतिक सॉर्टिंग भी कहा जाता है: http://www.codinghorror.com/blog/archives/001018.html –
+1। कूल लिंक, मैं सिर्फ सवाल का जवाब देने वाला था। अब इसके लिए कोई ज़रूरत नहीं है। – Boldewyn