2010-09-08 13 views
5

J'ai ce script qui traite des lignes contenant des chemins de fichiers Windows. Cependant, le script tourne sous Linux. Existe-t-il un moyen de modifier la bibliothèque OS pour gérer le chemin d'accès au fichier Windows lors de l'exécution sous Linux?Python - Créer un script pour manipuler des chemins de fichiers Windows mais fonctionner sous Linux

Je pensais quelque chose comme:

import os 
os.pathsep = '\\' 

(qui ne fonctionne pas depuis os.pathsep est, pour une raison quelconque)

Mon script:

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) 

Répondre

7

Regardez le module ntpath

Sur Linux, je l'ai:

>> 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 est le séparateur utilisé pour la variable d'environnement PATH. Vous cherchez os.sep.

Bien que je déconseille généralement de modifier les données d'un module comme celui-ci, cela peut répondre à vos besoins. Alternativement, vous pouvez implémenter nom de base vous-même, quelque chose comme package_path.split('\\')[-1]

3

Essayez d'utiliser os.sep = '\\'. os.pathsep est le séparateur utilisé pour séparer le chemin de recherche (variable d'environnement PATH) sur le système d'exploitation.

voir os module description