我使用Visual Studio 12使用C#创建表单。我已经成功地将C#中的一个参数传递给python。我没有使用Iron python。我正在处理的新应用程序需要将两个参数传递给python。这两个参数都是用户选择的日期。 将C#中的两个参数(日期)传递给python脚本
这是我的代码来捕获参数并将它们传递给Python。
private void button1_Click(object sender, EventArgs e)
{
dbegin = PublicVars.g_begindate;
dend = PublicVars.g_enddate;
CallPython python = new CallPython(@"C:\Python27\ArcGIS10.3\python.exe");
python.Run_Script(@"\\gisdb01\gis\tools\Python\TA_Report\Update_4_Road.pyc", dbegin dend);
this.Close();
}
private void dateTimePickerBegin_ValueChanged(object sender, EventArgs e)
{
PublicVars.g_begindate = dateTimePickerBegin.Text;
}
private void dateTimePickerEnd_ValueChanged(object sender, EventArgs e)
{
PublicVars.g_enddate = dateTimePickerEnd.Text;
会发生什么事是错误的亮点 'DEND',给我 “)预计”。我曾尝试在dbegin和dend之间添加)和逗号,但似乎无法使其工作。
这是我用来调用Python代码:
namespace Advisory_Application
{
class CallPython
{
string pythonLocationString;
public CallPython(string pythonLocation)
{
pythonLocationString = pythonLocation;
}
public void Run_Script(string scriptPathName, string arguments)
{
int ExitCode;
ProcessStartInfo processStartInfo = new ProcessStartInfo();
processStartInfo.FileName = pythonLocationString;
processStartInfo.Arguments = scriptPathName;
processStartInfo.UseShellExecute = false;
processStartInfo.RedirectStandardOutput = true;
processStartInfo.WindowStyle = ProcessWindowStyle.Hidden;
processStartInfo.CreateNoWindow = true;
Process updateProcess = Process.Start(processStartInfo);
updateProcess.WaitForExit();
ExitCode = updateProcess.ExitCode;
updateProcess.Close();
}
}
}
任何帮助,将不胜感激。
这个工作很大,有在C#中没有错误! –