2010-09-08 1 views
5

पर चल रहा है मेरे पास यह स्क्रिप्ट है जो विंडोज़ फ़ाइल पथ वाली रेखाओं को संसाधित करती है। हालांकि लिपिक्स पर लिपि चल रही है। क्या लिनक्स पर चलते समय विंडोज फ़ाइल पथ हैंडलिंग करने के लिए ओएस लाइब्रेरी को बदलने का कोई तरीका है?पायथन - विंडोज फ़ाइल पथों में हेरफेर करने के लिए स्क्रिप्ट बनाएं लेकिन लिनक्स

मैं की तरह कुछ सोच रहा था:

import os 
os.pathsep = '\\' 

(जो बाद से os.pathsep है काम नहीं करता है, किसी कारण के लिए)

मेरे स्क्रिप्ट:

for line in INPUT.splitlines(): 
    package_path,step_name = line.strip().split('>') 
    file_name = os.path.basename(package_path) 
    name = os.path.splitext(file_name)[0] 
    print template % (name,file_name,package_path) 

उत्तर

7

देखो:

>> import ntpath  
>> ntpath.split("c:\windows\i\love\you.txt") 
('c:\\windows\\i\\love', 'you.txt') 
>> ntpath.splitext("c:\windows\i\love\you.txt") 
('c:\\windows\\i\\love\\you', '.txt') 
>> ntpath.basename("c:\windows\i\love\you.txt") 
'you.txt' 
1

os.pathsep वह विभाजक है जिसे पाथ पर्यावरण चर के लिए उपयोग किया जाता है। आप os.sep की तलाश में हैं।

जबकि मैं आम तौर पर इस तरह के मॉड्यूल में डेटा बदलने के खिलाफ सलाह देता हूं, यह आपकी आवश्यकताओं के अनुरूप हो सकता है। वैकल्पिक रूप से, आप बेसनाम स्वयं को कार्यान्वित कर सकते हैं, package_path.split('\\')[-1]

3

os.sep = '\\' का उपयोग करने का प्रयास करें। os.pathsep ओएस पर खोज पथ (पथ पर्यावरण चर) को अलग करने के लिए इस्तेमाल किया गया विभाजक है।

देख ntpath मॉड्यूल

लिनक्स पर, मैंने किया था पर os module description