gpt4 book ai didi

python - 使用管道在两个匿名 python 脚本之间传递数据

转载 作者:可可西里 更新时间:2023-11-01 10:55:30 25 4
gpt4 key购买 nike

在 Windows 命令行中考虑这一点。

scriptA.py | scriptB.py

我想通过 pickle:ing 将字典对象从 scriptA.py 发送到 scriptB.py 并通过管道发送。但我不知道如何实现这一点。

我在这里读过一些关于这个主题的帖子,但通常会有这样的答案:

Popen( "scriptA.py"´, ..., and so on )

但我实际上并不知道“scriptA.py”的名称。我只想获取准备好的管道对象并发送/接收数据缓冲区。

我已经尝试过 sys.stdout/stdout,但我遇到了文件描述符错误,而且基本上还没有尝试过该轨道。

过程很简单:

脚本A.py:

  • (1) Pickle/Serialize dictionary into stringbuffer
  • (2) 通过管道发送字符串缓冲区

脚本B.py

  • (3) 从管道接收stringbuffer
  • (4) Unpickle/Deserialize stringbuffer into dictionary

最佳答案

当你对一个shell说这个的时候

scriptA.py | scriptB.py

外壳用管道连接它们。您什么都不做,它运行完美。

scriptA.py 写入 sys.stdout 的所有内容都会转到 scriptB.py

scriptB.py 从 sys.stdin 读取的所有内容都来自 scriptA.py

他们已经连接。

那么,如何将字典从 A 中的标准输出传递到 B 中的标准输入?

  1. Pickle . scriptA.py 将字典转储到标准输出。 scriptB.py 从标准输入加载字典。

  2. JSON . scriptA.py 将字典转储到标准输出。 scriptB.py 从标准输入加载字典。

这已经内置于 Python 中,并且只需要非常非常少的代码。

在 scriptA 中,json.dump( {}, sys.stdout )pickle.dump( {}, sys.stdout )

在 scriptB 中,json.load( sys.stdin )pickle.load( sys.stdin )

关于python - 使用管道在两个匿名 python 脚本之间传递数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1057576/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com