使用subprocess时Popen出现python错误

0 投票
1 回答
575 浏览
提问于 2025-04-16 16:45

我有一个Python脚本,内容是这样的:

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

但是它给我报错了。

1 个回答

6

如果你想让系统的命令行正确处理管道,就需要加上 shell=True

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

(注意,行末不需要加分号。)不过,这样做可能不会得到你想要的结果,因为这会返回一个 Popen 对象,所以你还需要检查 var1.wait() 是否返回 0

如果你只是想知道当前目录里是否包含 'home',其实有个更简单的方法:

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

撰写回答