0

我需要从 C# 调用 python 脚本,我会这样做:

   System.Diagnostics.Process process = new System.Diagnostics.Process();
   System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
   startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
   startInfo.FileName = "cmd.exe";
   startInfo.Arguments = "/C python \"C:\\working\\projects\\python tests\\Sample Data.py\"";
   process.StartInfo = startInfo;
   process.Start();

但我现在需要添加命令行参数。我正在尝试在仅使用sys.argv哪个似乎很容易实现或使用argparse. 如果我总是传递一个且只有一个参数(日期),那么使用有什么好处argparse吗?

有关该问题的其他信息(与问题略有相干):

我传递的日期是 SQL 查询的参数。我可以改为在 C# 中运行这个查询(我更喜欢),但是我需要通过命令行参数将结果传递给 python,这在我看来是一个糟糕的主意,但也许这是 argparse 可以处理的事情?该表有两个日期列和 4 个浮点列。这样的表可以这样传吗?

我通过 cmd.exe 调用 python 而不是使用 IronPython 的原因是(A)我只需要从 C# 向 Python 传递一次信息,因此两者之间的通信非常有限,并且(B)其结果是 3D 表面由 mplot3d 生成的绘图在 IronPython 中工作似乎很麻烦(这实际上通常让我感到困惑),所以如果我只是通过单个日期,那么这似乎并不合理。但是,如果我可以通过命令行参数或其他一些不太复杂的方法轻松地传递整个表,我会很想听听如何。

4

1 回答 1

1

既然你是一个没有知识的幸福的干净石板,那就学习 argparse。它很简单,取代了现在被认为是旧的、过时的和(可能)已弃用的 sys.arg ;虽然现在你会发现它更常见,因为它在 Guido 还是个婴儿的时候就已经存在了。

于 2012-09-12T08:39:02.673 回答