【问题标题】:How to return any object with sys.stdout如何使用 sys.stdout 返回任何对象
【发布时间】:2019-03-29 10:23:34
【问题描述】:

我正在编写一个 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

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

【问题讨论】:

  • 使用标准 Json 作为文本格式进行通信。发送:json.dumps(your_object) 接收:d = json.loads(input_string)

标签: python bash list pipe


【解决方案1】:

您可以通过pickle 使用数据序列化:

发件人.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()))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-09-27
    • 2016-09-01
    • 2018-09-09
    • 1970-01-01
    相关资源
    最近更新 更多