如何通过 Python 运行 C# 控制台应用程序?

How to run C# Console Applications via Python?

我使用 Visual Studio 创建了以下 C# 控制台应用程序(.NET Core 3.1)

using System;

namespace ConsoleApp2
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");

            //Check if args contains anything
            if (args.Length > 0)
            {
                Console.WriteLine("args = " + args[0]);
            } else
            {
                Console.WriteLine("args is empty");
            }

            //Prevent the application from closing itself without user input
            string waiter = Console.ReadLine();
        }
    }
}

我能够通过 cmd.exe 使用一个参数成功执行应用程序: CMD Input and Output

现在我想通过 Python 运行 这个程序的一个参数。我已阅读 How to execute a program or call a system command? 并尝试实施它。但是,应用程序似乎没有正常 运行。

我通过 Jupyter notebook 使用的 python 代码:

import subprocess
path = "C:/Users/duykh/source/repos/ConsoleApp2/ConsoleApp2/bin/Release/netcoreapp3.1/ConsoleApp2.exe"
subprocess.Popen(path) //#Also tried with .call and .run
                        //#subprocess.Popen([path, "argumentexample"]) doesn't work either

输出:

<subprocess.Popen at 0x2bcaeba49a0>

我的问题是:

为什么它不是 运行(正确地),我如何使用一个参数正确地 运行 这个应用程序?

我已经回答了我自己的问题。一言以蔽之:我很笨。

  1. Jupyter Notebook 运行在后台运行,应用程序 运行 在后台运行。这就是它没有打开新提示的原因。

  2. subprocess.Popen([path, "argument example"]) 似乎适用于 运行 将参数作为输入的控制台应用程序。