【问题标题】:C# Escape on command line argumentC# 在命令行参数上转义
【发布时间】:2016-06-20 17:57:19
【问题描述】:

我正在尝试将字符串参数传递给我从 C# 调用的 python 脚本。但是,该参数未被识别,但脚本仍在运行。我相信我在使用转义序列时没有使用正确的方法。这是我的代码:

String argss = "C:/My_Python_lib/happyBirthday.py 'joe'";

'joe' 是我的 python 脚本的输入参数。我不知道它是否比用单引号括起来更复杂,但作为初学者,我不太确定。任何帮助,将不胜感激。谢谢。

编辑 我在下面包含了我的 python 代码来显示脚本,因为建议的答案似乎都不起作用。会不会是函数调用方式的原因?

'''Function with parameter.'''


def happyBirthday(person):
    print("Happy Birthday to you!")
    print("Happy Birthday to you!")
    print("Happy Birthday, dear " + person + ".")
    print("Happy Birthday to you!")

happyBirthday('Emily')
happyBirthday('Andre')

【问题讨论】:

  • 你确定需要'joe' 而不是joe
  • String argss = "@C:\My_Python_lib/happyBirthday.py joe";
  • 这些都不起作用。
  • 你能展示你是如何在 python 中获得周长的吗?当您在终端中运行完全相同的代码时,这是否有效?

标签: c# python command-line


【解决方案1】:
var p = new Process 
{ 
   StartInfo = new ProcessStartInfo
   {
      FileName = @"C:\My_Python_lib\happyBirthday.py",
      Arguments = "joe",
   }
};
p.Start();

【讨论】:

    【解决方案2】:

    正如人们评论的那样,您不需要在 joe 周围加上引号。

    【讨论】:

    • 这行得通。我的 python 代码中缺少 import sys 和 sys.argv 命令来捕获脚本的输入。
    猜你喜欢
    • 2011-07-27
    • 2011-04-27
    • 2010-10-01
    • 2013-02-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-26
    • 2016-12-22
    • 2013-10-09
    相关资源
    最近更新 更多