2012-09-05 64 views
12

確實需要走些路,並執行一些命令和下面是代碼如何移動到一個文件夾回蟒蛇

代碼

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

目前我在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 

其實這裏發生的事情是當我第一次使用os.chdir()的目錄已經改成

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

但對於第二個,我需要通過移動到一個文件夾背的是要運行一個文件

'/home/Desktop/folder/nodes' 

因此,誰能讓我怎麼一個文件夾移回在python

+2

如果可以,請避免使用'os.chdir'。 'subprocess'模塊的函數將工作目錄作爲參數。 (另外,'true'應該是'True','== True'並不是必需的。) –

+1

@Kour ipm,就像larsmans說的那樣,使用子進程來做你需要做的事情,它有關鍵字cwd。所以調用你需要的東西:subprocess.call(「yourCommand」,shell = True,cwd =「path/to/directory」) – Oz123

回答

14

就像你會在殼中。

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

只需撥打

os.chdir('..') 

在任何其他語言一樣:)

0

考慮使用絕對路徑

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

這裏做一個非常獨立於平臺的方式它。

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

然後你有路徑,你可以chdir或任何它。

相關問題