2012-09-05 5 views
12

effettivamente bisogno di andare un po 'il percorso ed eseguire qualche comando e sotto è il codiceCome passare a una cartella di nuovo in python

codice:

import os 
present_working_directory = '/home/Desktop/folder' 

attualmente mi trovo in folder

if some_condition == true : 
    change_path = "nodes/hellofolder" 
    os.chdir(change_path) 
    print os.getcwd() 
if another_condition == true: 
    change_another_path = "nodes" 
    os.chdir(change_another_path) 
    print os.getcwd() 

**Result**: 
'/home/Desktop/folder/nodes/hellofolder' 
python: [Errno 1] No such file or directory 

In realtà, che cosa sta succedendo qui è quando ho utilizzato per la prima volta os.chdir() la directory è stata modificata in

'/home/Desktop/folder/nodes/hellofolder',

ma per il secondo ho bisogno di eseguire un file passando a uno indietro cartella che si trova

'/home/Desktop/folder/nodes' 

Allora qualcuno mi può lasciare come spostare una cartella di nuovo in python

+2

Evitare 'os.chdir' se possibile. Le funzioni del modulo 'subprocess' prendono la directory di lavoro come argomento. (Inoltre, 'true' dovrebbe essere' True' e '== True' non è mai necessario.) –

+1

@Kour ipm, come ha detto larsman, fa quello che devi fare usando il sottoprocesso, ha la parola chiave cwd. Quindi chiama ciò che ti serve usando: subprocess.call ("yourCommand", shell = True, cwd = "percorso/alla/directory") – Oz123

risposta

14

Proprio come faresti nella shell.

os.chdir("../nodes") 
6

Basta chiamare

os.chdir('..') 

lo stesso come in qualsiasi altra lingua :)

0

pensare di utilizzare percorsi assoluti

import os 
pwd = '/home/Desktop/folder' 

if some_condition == true : 
    path = os.path.join(pwd, "nodes/hellofolder") 
    os.chdir(path) 
    print os.getcwd() 
if another_condition == true: 
    path = os.path.join(pwd, "nodes") 
    os.chdir(path) 
    print os.getcwd() 
12

Ecco una piattaforma di modo indipendente per fare esso.

In [1]: os.getcwd() 
Out[1]: '/Users/user/Dropbox/temp' 

In [2]: os.path.normpath(os.getcwd() + os.sep + os.pardir) 
Out[2]: '/Users/user/Dropbox/' 

Poi hai il percorso, e puoi chdir o qualsiasi altra cosa con esso.

Problemi correlati