2011-05-01 132 views
0

我有我的Python腳本,這與POPEN蟒蛇錯誤,而使用子

var1 = subprocess.Popen("pwd | grep 'home' "); 
print var1 

但它給我的錯誤

+0

有關將錯誤怎麼辦? – 2011-05-01 08:45:45

+0

什麼是錯誤? – 2011-05-01 08:45:56

+0

除了上面的問題,你還想做什麼?有可能有一個更好的(內置)方法來做到這一點。 – sdolan 2011-05-01 08:53:32

回答

6

您需要添加shell=True如果您希望shell正確解釋管:

var1 = subprocess.Popen("pwd | grep 'home' ", shell=True) 

(注意不要在該行的結尾需要一個分號。)這可能不是你所期望的,但 - 返回一個對象POPEN是的話,你需要檢查是否var1.wait()返回0或不。

更簡單的方法,如果你只是想找出如果當前目錄包含的「家」,就是要做到:

if 'home' in os.getcwd(): 
    print "'home' is in the current working directory's path" 
+0

我得到這個** ] **。其實我正在蟒蛇,我不知道從哪裏開始。有什麼教程可以幫助我用python執行linux任務 – Mahakaal 2011-05-01 09:14:55

+0

http://magazine.redhat.com/2008/02/07/python-for-bash-scripters-a-well-kept-secret/(第二個鏈接在谷歌搜索「python bash replacement」) – ncoghlan 2011-05-01 11:50:59