web-dev-qa-db-fra.com

Comment revenir à un dossier dans python

En fait, besoin d'aller sur un chemin et d'exécuter une commande et ci-dessous est le code

code:

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

actuellement je suis dans 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 fait, ce qui se passe ici, c'est quand j'ai utilisé os.chdir() le répertoire est devenu

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

mais pour le second, j'ai besoin d'exécuter un fichier en déplaçant vers un dossier en arrière qui est

'/home/Desktop/folder/nodes'

Alors, quelqu'un peut-il me laisser revenir en arrière en python

24

Tout comme vous le feriez dans le Shell.

os.chdir("../nodes")
35
Alex

Voici une façon très indépendante de la plateforme de le faire.

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

Ensuite, vous avez le chemin, et vous pouvez chdir ou autre chose avec.

21
chimpsarehungry

Il suffit d'appeler

os.chdir('..')

le même que dans toute autre langue :)

19
moopet

pensez à utiliser des chemins absolus

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()
1
Christian Thieme

En général,

Folder1:
    sub-folder1:(you want to navigate here)
Folder2:
    sub-folde2:(you are here)

Pour naviguer vers sub-folder1 de sub-folder2, vous devez écrire comme ceci "../sub-folder1/ "

0