2009-10-22 2 views

risposta

23

Usa os.pardir (che probabilmente è sempre "..")

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

funzionerà sia per Windows che per Linux? – nunos

+0

utilizzando os.pardir verrà utilizzata la sintassi della directory principale pertinente per il sistema operativo su cui è in esecuzione la tua applicazione. Quindi sì, funzionerà sia su Windows che su Linux. –

+0

Grazie. È stato veloce! – nunos

0

Dipende se si lavora in un ambiente Unix o Windows.

su Windows:

..\foo.txt 

Su Unix come sistema operativo:

../foo.txt 

è necessario assicurarsi che il sistema operativo imposta il percorso di corrente in modo corretto quando i lanci di applicazione. Prendi il percorso appropriato e crea semplicemente un file lì.

+0

usa os.path.join o os.sep –

+0

Python capirà anche la barra diretta su Windows. – mob

+0

Non sono un ragazzo pitone :-) –

7

Le persone non sembrano rendersene conto, ma Python è felice di accettare la barra diretta anche su Windows. Funziona bene su tutte le piattaforme:

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

È una funzione ufficiale? Non ricordo di averlo visto nella documentazione, e os.path.join mi ha sempre fatto pensare che i programmatori non dovrebbero fare affidamento sul fatto che '/' è il separatore del percorso ... – EOL