2009-10-22 4 views

Respuesta

23

Uso os.pardir (que probablemente es siempre "..")

import os 
fobj = open(os.path.join(os.pardir, "filename"), "w") 
+2

¿funcionará eso para Windows y Linux? – nunos

+0

usando os.pardir tomará la sintaxis del directorio principal relevante para el sistema operativo en el que se está ejecutando actualmente su aplicación. Entonces sí, funcionará tanto en Windows como en Linux. –

+0

Gracias. ¡Eso fue rápido! – nunos

0

depende de si se está trabajando en un entorno UNIX o Windows.

en Windows:

..\foo.txt 

en UNIX como sistema operativo:

../foo.txt 

que necesita para asegurarse de que el sistema operativo establece la ruta actual correctamente cuando su aplicación se inicia. Tome la ruta adecuada y simplemente cree un archivo allí.

+0

use os.path.join o os.sep –

+0

Python también comprenderá la barra diagonal en Windows. – mob

+0

No soy un tipo pitón :-) –

7

Parece que las personas no se dan cuenta de esto, pero Python está feliz de aceptar la barra inclinada incluso en Windows. Esto funciona bien en todas las plataformas:

fobj = open("../filename", "w") 
+1

¿Es esta una función oficial? No recuerdo haberlo visto en la documentación, y os.path.join siempre me hizo pensar que los programadores no deberían confiar en que '/' sea el separador de ruta ... – EOL

Cuestiones relacionadas