【发布时间】:2021-07-19 14:01:46
【问题描述】:
假设我们遇到了如图所示的问题。
scriptA.py scriptB.py
get directory
modify directory
run scriptB with directory as input
-------> get directory
open .txt file
scan its contents
<------- return content to scriptA
print content
我的脚本一个例子是:
import os
import subprocess
if __name__ == '__main__':
directory = os.getcwd() + os.sep + 'some extension'
p = subprocess.Popen("python ScriptB.py", stdin=subprocess.PIPE, stdout=subprocess.PIPE, shell=True)
results = p.communicate(input = str.encode(directory))[0]
print(results)
但现在我不确定如何访问 ScriptB 中的输入。那么communicate 检测到 ScriptB 输出的内容有什么必要?我的例子正确吗?
【问题讨论】:
-
为什么不将其他脚本作为模块导入,或者是为了练习?
-
我最近不得不做一些不太相似的事情,对
subprocess感到失望/沮丧,最终改用pexpect:pexpect.readthedocs.io/en/stable
标签: python subprocess popen