如何使用 sys.stdout 返回任何对象



我正在处理一个python bash脚本,我想将一个列表从第一个文件输出到下一个文件,如下所示:

sender.py

#!/usr/bin/env python
import sys
l = [1,2,4,6,8,"maybe some text"]
sys.stdout.write(Qs)
sys.stdout.flush()

receiver.py

#!/usr/bin/env python
import sys
print(sys.stdin.readline())

然后做 在 bash 中

./sender_py | ./receiver

我知道问题是这个方法只能读取一个字符串,但是有没有其他方法可以传递任何对象。在这种情况下,我传递了一个列表,但稍后我想尝试其他对象,例如熊猫 dfs。

您可以将数据序列化与 pickle 一起使用:

sender.py

#!/usr/bin/env python
import sys
import pickle
l = [1,2,4,6,8,"maybe some text"]
sys.stdout.buffer.write(pickle.dumps(l))

receiver.py

#!/usr/bin/env python
import sys
import pickle
print(pickle.loads(sys.stdin.buffer.read()))

相关内容

最新更新