Python 如何与交互子流程通信

Python 如何与交互子流程通信,python,inkscape,Python,Inkscape,我有一个包含56个对象的SVG文件,我想将其导出为单个PNG文件。我可以用子流程模块来实现这一点,但它需要执行Inkscape 56次,我正在寻找更好的方法。Inkscape有一个具有shell模式的命令行界面,我已经能够使用shell导出项目,但是当我尝试使用子流程模块执行此操作时,我发出的任何命令都太长: import subprocess as sp proc =sp.Popen('inkscape -z --shell'.split(), stdin=sp.PIPE, stdout=s

我有一个包含56个对象的SVG文件,我想将其导出为单个PNG文件。我可以用子流程模块来实现这一点,但它需要执行Inkscape 56次,我正在寻找更好的方法。Inkscape有一个具有shell模式的命令行界面,我已经能够使用shell导出项目,但是当我尝试使用子流程模块执行此操作时,我发出的任何命令都太长:

import subprocess as sp

proc =sp.Popen('inkscape -z --shell'.split(), stdin=sp.PIPE, stdout=sp.PIPE, stderr=sp.PIPE, universal_newlines=True)
x=proc.communicate('--help')
print(x)

("Inkscape 0.91 r13725 interactive shell mode. Type 'quit' to quit.\n>ERROR: Command line too long\n", '')

我做错了什么?

inkscape错误具有误导性。问题是缺少
\n

proc.communicate('--help\n')

您提供的命令足够长,inkscape抛出了一个错误。您可以查看文档,也可以尝试错误,找出最长需要多长时间。谢谢。请继续关注更多问题。