Reputation: 400
I am try to send the string as command line argument to my python script as follow:
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
};
and i am try to read the command line argument and display it in python as:
import sys
print sys.argv[1]
But, I get only the first word "Rahul" as output. Please help me to send string as command parameter argument to my python script.
Upvotes: 2
Views: 2240
Reputation: 59405
You should pass your string inside double quotes if it contains spaces:
Arguments = string.Format("{0} {1}", cmdToBeExecute, "\"Rahul done good\""),
This is not specific to C#; you should use quotes even if you run it from the command line:
python myscript.py "Rahul done good"
Upvotes: 5