对于学校,我必须制作一个模糊器,我使用 Charle Miller 来对 pdf 文件进行引信。我想检查应用程序的失败次数。当我做
result = process.communicate()
print(result)
它多次打印 (None,None) 是什么意思?
对于学校,我必须制作一个模糊器,我使用 Charle Miller 来对 pdf 文件进行引信。我想检查应用程序的失败次数。当我做
result = process.communicate()
print(result)
它多次打印 (None,None) 是什么意思?
这意味着当您创建subprocess.Popen
对象时,您没有指定stdout=PIPE
or stderr=PIPE
。
弹出。
communicate
(输入=无,超时=无)与进程交互:将数据发送到标准输入。从标准输出和标准错误读取数据 [...]
communicate()
返回一个元组(stdout_data,stderr_data)。[...]请注意,如果要将数据发送到进程的标准输入,则需要使用
stdin=PIPE
. 同样,要获取结果元组以外None
的任何内容,您需要给出stdout=PIPE
和/或stderr=PIPE
[emph. 补充]太。
例如:
import subprocess
apples_only = subprocess.Popen(
["grep", "apple"],
stdin=subprocess.PIPE,
stdout=subprocess.PIPE,
)
out, err = apples_only.communicate(b"pear\napple\nbanana\n")
print((out, err))
# (b'apple\n', None) # did not say stderr=PIPE so it's None.