【发布时间】:2015-05-14 16:21:13
【问题描述】:
我在这里执行此代码时遇到问题
subprocess.check_output(['ps -ef | grep ftp | wc -l'],env=environ,shell=True)
当我从终端执行时
ps -ef | grep ftp | wc -l
我得到“1”作为输出,这很好。
现在,我从 python 文件中执行与 subprocess.check_output 相同的代码,它给了我 2。这很奇怪。任何想法为什么会发生。完整代码如下:
def countFunction():
environ = dict(os.environ)
return subprocess.check_output(['ps -ef | grep ftp | wc -l'],env=environ,shell=True)
count = countFunction()
print count
编辑: 只是为了更新,我没有任何 ftp 连接。所以命令行在命令上打印 1 很好。 谢谢 阿文德
【问题讨论】:
-
你的python进程中是否有名称
ftp? -
不,只是上面的代码。执行过程中没有 ftp 文本
-
您可以轻松地解决这个问题,只需运行
ps -ef | grep ftp并查找额外进程的来源。 -
提示:
ps -ef | grep ftp可能,根据时间的不同,不仅可以找到ftp,还可以找到grep ftp... -
@twalberg:两个进程都是在运行之前创建的。否则将无法连接他们的管道。
标签: python python-2.7