如何将中间量的数据传递给子流程?

Mar*_*ark 6 python subprocess

我已经对要用Python传递给C程序的数据做了一些预处理。数据量不是很大-它由形式为(int,str)的“数据包”组成,其中字符串是长度一致的字符串(例如〜80)。我可能需要通过其中约40个。我可能最终可能会放大这些数字,但是可以假定字符串的长度为<= 200,并且它们的数量可以为<= 4000。

我打算在subprocessPython中使用它来管理C程序的执行,但是我很好奇将数据发送到C程序的“好”方式。一种解决方案是使用临时文件,但这似乎很容易(似乎我可能对此数据“太少”了)。我也可以将所有数据作为命令行参数传递给subprocess.run,但在这里感觉有点像我可能拥有“太多”数据才有意义(但我不知道---我不是软件工程师)。

处理传递到子流程的“中间”数据量时,建议的处理方式是什么?

ask*_*oni 4

您可以序列化数据(使用 json 或类似的)并将其传递到子进程的stdin. subprocess.run(input=...), 例如。