【发布时间】:2018-03-26 13:33:04
【问题描述】:
我正在编写一个 python 字符串来解析 JSON 文件中的值,运行一个名为 Googler 的工具,其中包含几个参数,包括 JSON 文件中的值,然后将工具的输出保存到文件中(首选 CSV,但那是另一天的事了)。
目前的代码是:
import json
import os
import subprocess
import time
with open("test.json") as json_file:
json_data = json.load(json_file)
test = (json_data["search_term1"]["apparel"]["biba"])
#os.system("googler -N -t d1 "+test) shows the output, but can't write to a file.
result= subprocess.run(["googler", "-N","-t","d1",test], stdout=subprocess.PIPE, universal_newlines=True)
print(result.stdout)
当我运行上面的脚本时,什么都没有发生,终端只是空白,直到我发送键盘中断,然后我得到这个错误:
Traceback (most recent call last):
File "script.py", line 12, in <module>
result= subprocess.run(["googler", "-N","-t","d1",test], stdout=subprocess.PIPE, universal_newlines=True)
File "/usr/lib/python3.5/subprocess.py", line 695, in run
stdout, stderr = process.communicate(input, timeout=timeout)
File "/usr/lib/python3.5/subprocess.py", line 1059, in communicate
stdout = self.stdout.read()
KeyboardInterrupt
我尝试用字符串替换 test 变量,同样的错误。同一行适用于"ls", "-l", "/dev/null"。
如何提取此工具的输出并将其写入文件?
【问题讨论】:
标签: python io subprocess