2011-05-01 140 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