मैं ऐसे प्रोग्राम के साथ काम कर रहा हूं जो किसी सीएसवी फ़ाइल को आउटपुट लिखता है, जिस क्रम में फ़ाइलों को निर्देशिका से पढ़ा जाता है। हालांकि अंत में 1,2,3,4,5,6,7,8,9,10,11,12 के साथ बड़ी संख्या में फाइलें हैं। मेरा प्रोग्राम वास्तव में फाइलों को पढ़ता है, मुझे लगता है कि वर्णमाला क्रम: 1,10,11,12 ...., 2,20,21 ..... 99। समस्या यह है कि एक और कार्यक्रम मानता है कि आदेश संख्यात्मक क्रम में है, और ग्राफ परिणामों को skews।पढ़ने से पहले निर्देशिका में फ़ाइलों को कैसे सॉर्ट करें?
वास्तव में फ़ाइल की तरह दिखता है: String.ext.ext2.1.txt, String.ext.ext2.2.txt
, और इतने पर ...
मैं इस एक अजगर स्क्रिप्ट के साथ कर सकते हैं?
क्या आप समझा सकते हैं कि दूसरी पंक्ति कैसे काम करती है? – Jim
'sorted_files = sorted (फ़ाइलें, key = lambda x: int (x.split ('।') [3])) 'क्रमबद्ध' फ़ंक्शंस दूसरे तर्क द्वारा दिए गए चयनकर्ता का उपयोग करके इसका पहला तर्क टाइप करता है। किसी निश्चित कॉलम द्वारा तालिका को सॉर्ट करने के बारे में सोचें। अब, दूसरे तर्क के लिए। यह आपके फ़ाइल नाम को भागों की एक सूची में बदल रहा है ('.' से अलग) और उस सूची में तीसरा तत्व लेना –
इसे इसके साथ काम करने के लिए मिला: sorted_files = sorted (file_list, key = lambda x: int (x। विभाजन ('।') [3]) अगर (x.endswith ("txt")) अन्य x) – Jim