2017-06-20 1 views
0

Ich versuche ein Python-Skript aus einem anderen Python-Skript auszuführen, aber ich werde blockiert, da im übergebenen Argument ein Leerzeichen enthalten ist. Das Skript, das ich zu laufen versuche mit dem Namen von der Kommando Terminal lief und die Argumente als solcheAusführen eines Python-Skripts mit Argumenten, die Platz von einem anderen Python-Skript enthalten

>>>Duplicate_Checki.py "Google Control Center" "7.5 Hardening" 

Im Skript, das ich versuche, den Code, um das erste Skript aufrufen wie folgt aussieht:

def run_duplicate_check(self): 
    os.system("python Duplicate_Checki.py Google Control Center 7.5 Hardening") 

bekomme ich folgende Fehler

Duplicate_Checki.py: error: unrecognized arguments: Center 7.5 Hardening 

auch os.system("python Duplicate_Checki.py {} {}".format("Google Control Center" ,"7.5 Hardening")) mit dem gleichen Fehler versucht

Ich habe auch versucht,

os.system(python Duplicate_Checki.py "Google Control Center" "7.5 Hardening") 

aber ich ungültige Syntax

+0

Sie brauchen, um die Räume zu entkommen: 'os.system ('python Duplicate_Checki.py "Google \ Control \ Center 7.5 \ Hardening"') ' – inspectorG4dget

+1

Sieh dir' subprocess.run' an. Es macht keine Aufteilung auf Leerzeichen. – Artyer

Antwort

2

script.py erhalten:

import sys 

if __name__ == '__main__': 
    args = sys.argv[1:] 
    print(args[0]) 
    print(args[1]) 

runner.py:

from subprocess import call 

call(["python3", "script.py", "Google Control Center", "7.5 Hardening"]) 

Ausführung python3 runner.py, Ausgang:

Google Control Center 
7.5 Hardening 

https://docs.python.org/3/library/subprocess.html

# subprocess.run Siehe # subprocess.check_output, # subprocess.call

+0

Ich habe die Version Python 2.7 ausgeführt, also habe ich 'call ([" Duplicate_Checki.py "," Google Control Center "," 7.5 Hardening "], shell = True)' 'verwendet –

Verwandte Themen