Seite 1 von 1

shell -kommando per subprocess ..

Verfasst: Samstag 23. November 2013, 13:00
von karolus
Hallo

Ich scheitere gerade daran einen Shell-befehl in einen subprocess...-aufruf umzuwandeln.
Folgendes in einer Shell tut was ich will:

Code: Alles auswählen

/opt/libreoffice4.1/program/soffice --calc --accept="socket,host=localhost,port=2002;urp;StarOffice.ServiceManager" 
Damit startet Libreoffice im Servermodus

Per Subprocess aus einer IPython-shell:

Code: Alles auswählen

In [1]: import subprocess

In [2]: subprocess.call(['/opt/libreoffice4.1/program/soffice', 
                                           '--calc',
                                            '''--accept="socket,host=localhost,port=2002;
                                              urp;StarOffice.ServiceManager"'''])
***ohne Umbrüche im letzen Argument!

started LO zwar, aber nicht im Servermodus, und print(..) -befehle aus LO-scripts kommen auch nicht in der Shell an.

In der "Light"-version ohne Servermodus tun es:

Code: Alles auswählen

/opt/libreoffice4.1/program/soffice --calc
versus

Code: Alles auswählen

In [1]:import subprocess

In [2]: subprocess.call(['/opt/libreoffice4.1/program/soffice',  '--calc'])
gleichermassen.
Vermutlich muss ich das letzte Argument für subprocess irgendwie aufsplitten..nur wie ?

Karolus

Re: shell -kommando per subprocess ..

Verfasst: Samstag 23. November 2013, 14:09
von Sirius3
Hallo karolus,

Du mußt die doppelten Anführungsstriche weglassen. Die werden bereits von der Shell verarbeitet und gelangen nicht bis zum aufgerufenen Programm.

Grüße
Sirius

Re: shell -kommando per subprocess ..

Verfasst: Samstag 23. November 2013, 14:42
von karolus
Hallo
Du mußt die doppelten Anführungsstriche weglassen. ...
Ja, das wars -- danke für den Schubs.

Karolus