从c#启动python脚本的方法
本文关键字:方法 脚本 python 启动 | 更新日期: 2023-09-27 17:54:18
我使用了搜索引擎。我找不到我想要的东西,而且我不擅长编程。我有一个使用hashlib和M2Crypto的.py脚本,当我使用iron python从c#运行程序时,它说没有名为hashlib的模块。我找不到将hashlib导入c#或ironpython的方法,即使我搜索了所有的网络,我尝试了下面的代码,它似乎也不起作用。你能帮忙吗?谢谢。
Process p = new Process(); // create process (i.e., the python program
GetShortPathName(decdbpath, shortPath, shortPath.Capacity);
GetShortPathName(db, shortPath2, shortPath2.Capacity);
p.StartInfo.FileName = "C:''Python27''python.exe";
p.StartInfo.UseShellExecute = false;
p.StartInfo.Arguments = a+"''pycode.py" + shortPath + " " +
txt_entermail.Text + " >" + db;
p.Start(); // start the process (the python program)
p.WaitForExit();
MessageBox.Show("Decryption Done");
最后我发现了问题,py脚本的路径包含了一个空格,我修复了这个问题,但是现在python脚本拒绝接受参数?由于
string format = string.Format(shortPath + "''pycode.py"+" "+shortPath2.ToString() + " " + txt_entermail.Text + " > " + shortPath3.ToString());
这是结果:
usage C:'Users'win7'Ziad'MOBILE~1'DBEXPL~1'WINDOW~1'bin'Debug'pycode.py argument1 argument2> argument3
试着告诉我:
p.Arguments = string.Format("{0} {1}", cmd, args);
p.UseShellExecute = false;
p.RedirectStandardOutput = true;
using(Process process = Process.Start(p))
{
using(StreamReader reader = process.StandardOutput)
{
string result = reader.ReadToEnd();
Console.Write(result);
}
}
我相信你的问题是在你的python脚本,而不是在你的c#。参见无法导入hashlib