如何计算没有,我们从subprocess.popen命令得到线

问题描述 投票:0回答:1

我写这封信,其中我使用subprocess.Popen命令运行在终端的脚本会从数据库中检索某些结果的代码。我可能会从数据库或在此基础上我写一个条件从数据库不止一个结果一个结果。为此,我想知道没有输出我从子命令得到。我知道,对于逐行读取标准输出线,我们使用 -

proc = subprocess.Popen(["some command"],stdout = subprocess.PIPE,stdin =subprocess.PIPE, shell=True)
for line in proc.stdout.readlines():
 //do whatever stuff you want

但是,如果我想要什么来算没有从命令从标准输出的结果。我已经尝试使用

count=len(proc.stdout.readlines())

但它不工作,并给予计数值= 0,即使我从标准输出获得输出。谁能告诉我怎么算不的你是从使用标准输出与子命令的一些输出获得

我想类似下面

proc = subprocess.Popen(["some command"],stdout = subprocess.PIPE,stdin =subprocess.PIPE, shell=True)
count = len(proc.stdout.readlines())
if count ==1:
    for line in proc.stdout.readlines():
        // do something
elif count>1
    for line in proc.stdout.readlines():
        // do something

有人可以帮我一些方法?

python subprocess
1个回答
1
投票

首先readlines去你的文件的末尾,所以第二啥都没阅读。保存在标准输出做readlines方法之前的结果。

proc = subprocess.Popen(["ls"],stdout = subprocess.PIPE,stdin =subprocess.PIPE, shell=True)
out = proc.stdout.readlines()
count = len(out)
if count ==1:
    for line in out:
       print (line)
elif count>1:
    for line in out:
        print (line)
© www.soinside.com 2019 - 2024. All rights reserved.