मैं पाइथन में विंडोज के लिए एक कमांड लाइन निर्देशिका नेविगेटर लिख रहा हूं और os.path.join के साथ थोड़ा संघर्ष कर रहा हूं। यहाँ संक्षेप में, है, मैं क्या करने की कोशिश कर रहा हूँ: 'सी' और मैं बाहर क्यों समझ नहीं सकताos.path.join सही ढंग से स्वरूपण पथ
abspath = "C:\Python32\Projects\ls.py"
abspath = abspath.split('\\')
print(abspath) #this prints ['C:', 'Python32', 'Projects', 'ls.py']
if(options.mFlag):
print(os.path.join(*abspath)) #this prints C:Python32\Projects\ls.py
m = time.ctime(os.path.getmtime(os.path.join(*abspath))) #this throws an exception
समस्या यह है कि os.path.join के बाद डालने नहीं है एक '/' है। कोई मदद?
संपादित करें: यदि भविष्य में कोई भी यहां समाधान ढूंढ रहा है, तो मैंने बैकस्लैश हार्डकोडिंग के बजाय "सी:" के बाद os.sep जोड़ा और यह काम किया।
इस ब्लॉक का बिंदु प्रोग्राम मंच को स्वतंत्र बनाना है। इस फ़ंक्शन को सम्मिलित करने से पहले, कोड ओएसएक्स में ठीक से निष्पादित नहीं हो रहा था। टिप के लिए धन्यवाद, मैं splitdrive कोशिश करेंगे। – bkaiser
@benjaminhkaiser: एक और चीज जो आप कर सकते हैं \ ''के बजाय पथ विभाजक के रूप में \ /' का उपयोग करें। यह अभी भी विंडोज पर काम करेगा लेकिन अन्य प्लेटफार्मों पर भी काम करेगा। – BrenBarn
तो हम इसे स्लैश सही तरीके से जोड़ने के लिए कैसे प्राप्त करते हैं? 'os.path.join (os.getenv (" systemDrive "), 'somepath') '=='' सी: कुछपथ ' – endolith