我有一个名为phone.py的文件,它输出为(在终端中):
+911234567890
+910123321423
可以有更多的输出。
另一个名为email.py的文件,它产生(在终端中):
and@abc.com
bcd@cdc.com
或更多。
我有一个JSON文件,其结构如下:
{"One":"Some data",
"two":"Some more data",
"three":"Even more data"}
可以有更多这样的部分。
现在我希望捕获终端输出并加载现有的JSON,最后输出如下(作为JSON文件):
{Phone:"+911234567890,+910123321423", "Email":"and@abc.com,bcd@cdc.com","Sections":"{"One":"Some data",
"two":"Some more data",
"three":Even more data"}"}
我试图在python中使用子进程模块捕获输出,现在它存储在变量
中subprocess.run(['python','email.py','filename.txt'], stdout= subprocess.PIPE)
输出:
CompletedProcess(args=['python', 'email_txt.py', 'upload/filename.txt'], returncode=0, stdout=b'abc@xyz.com\nbcd@dcd.com\n')
我有一个字符串,其中存储数据而不是我希望通过这些组件获得所需的输出。 我该怎么做或参考解决这个问题?
答案 0 :(得分:3)
您可以通过subprocess.run
简单地从resp.stdout
获取标准输出,其中resp
是返回的对象。
答案 1 :(得分:0)
正如Rishav已经提到的,您需要将输出分配给变量&然后用它来获取相关属性。
>>> import subprocess
>>> out = subprocess.run(["ls", "-l", "/dev/null"], stdout=subprocess.PIPE)
>>> out.stdout
b'crw-rw-rw- 1 root root 1, 3 Apr 6 2017 /dev/null\n'