2010-09-08 18 views
5

Tengo este script que procesa líneas que contienen rutas de archivos de Windows. Sin embargo, la secuencia de comandos se ejecuta en Linux. ¿Hay alguna manera de cambiar la biblioteca de os para hacer el manejo de la ruta del archivo de Windows mientras se ejecuta en Linux?Python - Hacer script para manipular rutas de archivos de Windows pero ejecutándose en Linux

que estaba pensando algo como:

import os 
os.pathsep = '\\' 

(que no funciona ya que es os.pathsep; por alguna razón)

Mi 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) 

Respuesta

7

Mira el módulo de ntpath

En Linux, lo hice:

>> 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 es el separador que se usa para la variable de entorno PATH. Está buscando os.sep.

Si bien generalmente desaconsejo el cambio de datos en un módulo como ese, puede adaptarse a sus necesidades. Alternativamente, puede implementar basename usted mismo, algo así como package_path.split('\\')[-1]

3

Pruebe usar os.sep = '\\'. os.pathsep es el separador utilizado para separar la ruta de búsqueda (variable de entorno PATH) en el sistema operativo.

ver os module description

Cuestiones relacionadas