/ / Wie übergeben Sie String als Befehlszeilenargument in Python mit C # - c #, Python, Python-2.7, Befehlszeilenargumenten, processstartinfo

Wie Übergeben von Zeichenfolge als Befehlszeilenargument in Python mithilfe von C # - C #, Python, Python-2.7, Befehlszeilenargumente, Processstartinfo

Ich versuche, die Zeichenfolge als Befehlszeilenargument wie folgt an mein Python-Skript zu senden:

var cmdToBeExecute = Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location) + "\myScript.py";
var start = new ProcessStartInfo
{
FileName = "C:\Python27\python.exe",
Arguments = string.Format("{0} {1}", cmdToBeExecute, "Rahul done good"),
UseShellExecute = false,
RedirectStandardOutput = true,
CreateNoWindow = true
};

und ich versuche, das Kommandozeilenargument zu lesen und es in Python anzuzeigen als:

import sys
print sys.argv[1]

Ich bekomme aber nur das erste Wort "Rahul" als Ausgabe. Bitte helfen Sie mir, String als Befehlsparameter an mein Python-Skript zu senden.

Antworten:

3 für die Antwort № 1

Sie sollten Ihre Zeichenfolge in Anführungszeichen setzen, wenn sie Leerzeichen enthält:

Arguments = string.Format("{0} {1}", cmdToBeExecute, ""Rahul done good""),

Dies ist nicht spezifisch für C #; Sie sollten Anführungszeichen verwenden, auch wenn Sie es über die Befehlszeile ausführen:

python myscript.py "Rahul done good"