He escrito un código en Python que usa / para hacer un archivo en particular en una carpeta, si quiero usar el código en Windows no funcionará, ¿hay alguna manera de usar el código en Windows y Linux?
En python estoy usando este código:
pathfile=os.path.dirname(templateFile)
rootTree.write(''+pathfile+'/output/log.txt')
Cuando usaré mi código en una máquina Windows, mi código no funcionará.
¿Cómo uso "/" (separador de directorio) en Linux y Windows?

/en rutas de directorio. ¿Qué problema específico tienes? Publique un código que ilustre el problema.Respuestas:
Uso
os.path.join(). Ejemplo:os.path.join(pathfile,"output","log.txt").En su código eso sería:
rootTree.write(os.path.join(pathfile,"output","log.txt"))fuente
os.path.joinusa una lógica más compleja para unir varios componentes de ruta relativa. Cuando solo quieres encadenarlos,os.sep.joines la elección correcta.Utilizar:
para ver cómo se ve el separador en un sistema operativo actual.
En su código puede usar:
fuente
Puedes usar os.sep :
fuente
os.path.normpath(pathname)También debe mencionarse, ya que convierte los/separadores de ruta en\separadores en Windows. También se derrumba referencias redundantes de alta gama ... es decir,A/BeA/foo/../B, yA/./Btodos se conviertenA/B. Y si eres Windows, todo esto se convierteA\B.fuente
os.path.normpath('a/b/c/d/file.ext')queos.path.join('a','b','c','d','file.ext')cuando necesito especificar un camino largo.os.path.joinsimplemente se une a todo lo proporcionado. por ejemplo,join("a/b", "c\d")daa/b\c\d(en ventanas). Pero puedo obtener el resultado esperado con la combinación adecuada dejoinynormpath, por ejemploa\b\c\d(en Windows)Si tiene la suerte de ejecutar Python 3.4+, puede usar
pathlib:o equivalente,
fuente
Algunos enlaces útiles que te ayudarán:
fuente
seppero no pude resistirme a publicar esto también (asumí que el OP lo encontrará útil para el trabajo futuro) :)Haz un
import osy luego usaos.sepfuente
fuente
No construya los nombres de directorio y archivo usted mismo, use las bibliotecas incluidas de Python.
En este caso el relevante es os.path . Especialmente join, que crea un nuevo nombre de ruta a partir de un directorio y un nombre de archivo o directorio y divide que obtiene el nombre de archivo de una ruta completa.
Tu ejemplo sería
fuente