【问题标题】:How to pass string as command line argument in python using C#如何使用 C# 在 python 中将字符串作为命令行参数传递
【发布时间】:2016-05-27 07:38:02
【问题描述】:

我尝试将字符串作为命令行参数发送到我的 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”作为输出。 请帮助我将字符串作为命令参数参数发送到我的 python 脚本。

【问题讨论】:

  • 其他在sys.argv[2]sys.argv[3] 尝试将它们全部打印出来。例如,您可以使用 for 循环

标签: c# python python-2.7 command-line-arguments processstartinfo


【解决方案1】:

如果字符串包含空格,则应在双引号内传递字符串:

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

这不是 C# 特有的;即使从命令行运行,也应该使用引号:

python myscript.py "Rahul done good"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-26
    • 1970-01-01
    • 1970-01-01
    • 2016-09-08
    相关资源
    最近更新 更多