2017-10-30 2 views
0

Für ein Python 2.7 Projekt Ich möchte robotframework output.xml in eine sqlite Datenbank einlesen, ich fand das Paket DbBot das genau das tut. Allerdings möchte ich es von einem Skript statt von der Befehlszeile ausführen. Der Befehl, den ich auf der Kommandozeile verwenden:python run script aus script mit argumenten

python -m dbbot.run -k output.xml 

was tut genau das, was ich will (erzeugt eine SQLite-Datenbank mit den richtigen Daten). Ich habe versucht, die folgenden:

modl = imp.load_source('modulename', 'C:/Python27/Lib/site-packages/dbbot/run.py') 
someRunner = modl.DbBot() 

, die zurückgibt:

Run.py: error: at least one input file is required

was ich verstehe, wie ich eine Datei src hinzugefügt haben, wie ich durch die Zugabe output.xml

ich im Terminal tat kann output.xml nicht als Parameter zu modl.DbBot() hinzufügen, da es keine Parameter benötigt. Wie lässt man das -k-Flag und die output.xml (Datei src) davon ab, ein Skript zu verwenden?

Antwort

1

Verwenden subprocess Paket:

import subprocess 

# run separate process 
subprocess.call(['python', '-m', 'dbbot.run', '-k', 'output.xml'], shell=False) 

dbbot.run nicht von innen ein anderes Skript auszuführen codiert.