使用C#运行Python脚本很奇怪

时间:2015-10-17 15:46:17

标签: c# python python-2.7 cmd bitcoin

之前已经提出并回答了这个问题(例如:How do I run a Python script from C#?),但在我的具体代码中,答案对我来说似乎不起作用。

Github问题:https://github.com/nopara73/JoinMarketTest/issues/2

在cmd中它无缝地工作:

  

“python wallet-tool.py generate”

此命令会生成一个新钱包。 它要求用户提供密码,密码确认和钱包名称。

但是我似乎没有用C#代码来解决问题。

乍一看,它似乎很容易,但这里发生了一些不寻常的事情。

简化代码:

internal string Generate()
{
    ProcessStartInfo start = new ProcessStartInfo
            {
                FileName = PythonPath,
                Arguments = "wallet-tool.py generate",
                UseShellExecute = false,
                CreateNoWindow = true,
                RedirectStandardOutput = true,
                RedirectStandardInput = true
            };
    using (var process = Process.Start(start))
            {
                if (process == null) return String.Empty;
                using (var output = process.StandardOutput)
                {
                    using (var input = process.StandardInput)
                    {
                        // Asks for password.
                        var result = output.ReadToEnd();
                        input.WriteLine("password");
                        // Asks for password confirmation.
                        result += output.ReadToEnd();
                        input.WriteLine("password");
                        // Asks for wallet file name.
                        result += output.ReadToEnd();
                        input.WriteLine("wallet.json");
                        result += output.ReadToEnd();
                        return result;
                    }
                }
            }
}

1 个答案:

答案 0 :(得分:0)

作为替代方案,我已改为IronPython。