Python:如何在subprocess.Popen中传递一个类对象

时间:2017-09-20 12:42:50

标签: python popen

代码: B.py - B(可执行)

Get the object here and call it's functions

A.py - A(可执行)

from subprocess import Popen

class x():

    def __init__():
        pass
    def A1():
        ------
    def A2():
        ------
    <---------->

    def AN():
       -------

object_x = x()
Popen(['B','-class_args', 'x'])

我有两个python可执行文件。我在第一个可执行文件中定义了一个类。我已经创建了一个对象。我想使用Popen将该对象传递给第二个可执行文件。和Popen一样,我只能传递字符串,是否可以传递一个对象?

1 个答案:

答案 0 :(得分:3)

UNIX命令行的核心是一个C字符串列表(也就是说,字符串在它们在内存中的起始位置之后的第一个NUL值处终止)。

您无法传递无法转换为NUL分隔字符串的内容。

这意味着您可能pickle一个Python对象和base64 - 对结果进行编码(如果您在stdin上传递序列化对象,则可以避免使用base64编码开销,这样就可以使用NUL),并传递那个,base64-decoding并在以后取消它 - 但在命令行中,它必须是一个没有NUL字符的字符串。