在Windows命令行中考虑这一点。
scriptA.py | scriptB.py
我想通过pickle将scriptA.py中的字典对象发送到scriptB.py:将其发送并通过管道发送。但我不知道如何做到这一点。
我在这里阅读了一些关于这个主题的帖子,但通常会有这些答案:
Popen( "scriptA.py"´, ..., and so on )
但我实际上并不知道“scriptA.py”的名称。我只是想抓住ready管道对象并发送/接收数据缓冲区。
我已经尝试了sys.stdout / stdout,但是我得到了文件描述符错误,并且基本上没有尝试过那条轨道。
这个过程很简单:
scriptA.py:
scriptB.py
答案 0 :(得分:7)
当你对shell说这个时
scriptA.py | scriptB.py
shell将它们与管道连接起来。你什么都不做,而且效果很好。
scriptA.py
写入sys.stdout的所有内容都转到scriptB.py
scriptB.py
从sys.stdin读取的所有内容都来自scriptA.py
他们已经联系了。
那么,如何将字典从A中的stdout传递到B中的stdin?
答案 1 :(得分:2)
管道只将A的stdout放入B的stdin。
A确实:
import sys
sys.stdout.writelines(output)
B就是这样:
import sys
input = sys.stdin.readlines()
答案 2 :(得分:0)
当你输送东西时,你(通常)将一个程序的标准输出送入另一个程序的标准输入。我认为你应该继续尝试这条道路。
如果您无法用第二个脚本读取第一个脚本的输出,请查看this question。