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 № 1Sie 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"