我尝试将字符串作为命令行参数发送到我的python脚本,如下所示:
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
};
我尝试读取命令行参数并在python中显示为:
import sys
print sys.argv[1]
但是,我只得到第一个字" Rahul"作为输出。 请帮我把string作为命令参数参数发送到我的python脚本。
答案 0 :(得分:5)
如果字符串包含空格,则应将字符串传递给双引号:
Arguments = string.Format("{0} {1}", cmdToBeExecute, "\"Rahul done good\""),
这不是特定于C#的;你应该使用引号,即使你从命令行运行它:
python myscript.py "Rahul done good"