मेरे पास 100,000 से अधिक फाइलों वाला एक फ़ोल्डर है, सभी एक ही स्टब के साथ गिने गए हैं, लेकिन बिना शून्य शून्य के, और संख्याएं हमेशा संगत नहीं होती हैं (आमतौर पर वे हैं, लेकिन अंतराल हैं) उदाहरण:बैच के साथ 100K फाइलों का नाम बदलना
file-21.png,
file-22.png,
file-640.png,
file-641.png,
file-642.png,
file-645.png,
file-2130.png,
file-2131.png,
file-3012.png,
आदि
मैं करने के लिए बैच प्रक्रिया इस गद्देदार, सन्निहित फ़ाइलें बनाने के लिए करना चाहते हैं। उदाहरण के लिए:
file-000000.png,
file-000001.png,
file-000002.png,
file-000003.png,
जब मैं for filename in os.listdir('.'):
के साथ फ़ोल्डर पार्स फ़ाइलें मैं उन्हें करने के लिए करना चाहते हैं क्रम में नहीं आते हैं। जाहिर है वे आने
file-1,
file-1x,
file-1xx,
file-1xxx,
आदि तो
file-2,
file-2x,
file-2xx,
आदि मैं इसे कैसे संख्यात्मक मान के क्रम में के माध्यम से जाना जा सकता है? मैं एक पूर्ण पायथन नोब हूं, लेकिन मैं अनुमान लगा रहे दस्तावेज़ों को देख रहा हूं, मैं केवल संख्यात्मक भाग को फ़िल्टर करने वाली एक नई सूची बनाने के लिए मानचित्र का उपयोग कर सकता हूं, और फिर उस सूची को सॉर्ट कर सकता हूं, फिर उसे फिर से चालू कर सकता हूं? 100 से अधिक फाइलों के साथ यह भारी हो सकता है। कोई सुझाव स्वागत है!
आप मापदंडों के किसी भी संख्या के साथ एक linux "ls" कमांड चला सकते में परिभाषित किया गया है। – bwawok
हाँ, अगर मैं ऐसा कर रहा था, तो मैं बस 'sort -n' का उपयोग करूंगा। –
उत्तर के साथ अपने प्रश्न को संपादित करने के बजाय, अपने समाधान को नीचे अपने उत्तर के रूप में पोस्ट करना बेहतर है और इसे स्वीकार किए जाने के रूप में चिह्नित करें। –