之前已经提出并回答了这个问题(例如: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;
}
}
}
}
答案 0 :(得分:0)
作为替代方案,我已改为IronPython。