程序试图读取子进程的stdou时冻结

2024-10-06 12:19:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一些程序,它制作屏幕截图并上传到某个服务器,打印链接到该ss之后。你知道吗

输出如下:

######################################################################## 100,0%
https://puu.sh/vcE2l/533ecb687d.png
  • 第一行的行为类似于加载条,它使用stderr流。

  • 第二行是我想检索的链接的标准输出。

所以我写的剧本是:

p = subprocess.Popen(['puush', '-a'],stdout=subprocess.PIPE, stderr=subprocess.PIPE)
out, err = p.communicate()

脚本在communicate()上冻结,即使puush程序在我从终端使用它时正常终止。你知道吗

当我这样做时:

p = subprocess.Popen(['puush', '-a'],stdout=subprocess.PIPE, stderr=subprocess.PIPE)
p.wait()
print('Here')

我看到进程正在正常终止。你知道吗

如果有人能给我一个提示,我会非常感激的。你知道吗


Tags: https程序服务器屏幕链接shstderrstdout