2012-09-05 45 views
12

realmente necesita para ir un poco de trayectoria y ejecutar alguna orden y a continuación es el códigoCómo mover a una carpeta de nuevo en python

código:

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

actualmente estoy en 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 

En realidad, lo que está sucediendo aquí es cuando utilicé por primera vez os.chdir() el directorio ha cambiado a

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

pero para la segunda i necesidad de ejecutar un archivo moviendo a una vuelta carpeta que es

'/home/Desktop/folder/nodes' 

Así que ¿alguien puede dejar que la forma de mover una carpeta de nuevo en python

+2

Evita 'os.chdir' si puedes. Las funciones del módulo 'subprocess' toman el directorio de trabajo como un argumento. (Además, 'true' debe ser' True' y '== True' nunca es necesario.) –

+1

@Kour ipm, como dijo larsmans, haz lo que necesites con el subproceso, tiene la palabra clave cwd. Así que llame lo que necesite usando: subprocess.call ("yourCommand", shell = True, cwd = "path/to/directory") – Oz123

Respuesta

14

Como lo haría en el caparazón.

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

Sólo tiene que llamar

os.chdir('..') 

el mismo que en cualquier otro idioma :)

0

pensar en usar rutas absolutas

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

Esta es una manera muy independiente de plataforma para hacer eso.

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/' 

Luego tiene la ruta, y puede chdir o lo que sea con él.

Cuestiones relacionadas