2016-04-27 151 views
1

我有一個帶有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", '') 

我究竟做錯了什麼?

+0

您提供的命令足夠長,以致inkscape吐出了一個錯誤。您可以查看文檔或只是反覆試驗,找出最長的時間。 –

回答

2

該inkscape錯誤是誤導。問題是缺少\n

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

謝謝。請繼續關注更多問題。 – saulspatz