从ArcMap运行python脚本

时间:2010-07-15 20:56:17

标签: python esri

从ESRI的ArcMap中运行python脚本,它使用子进程模块调用另一个python脚本(或至少尝试调用它)。然而,它在(DOS窗口)中执行的系统窗口只是非常短暂地出现,足以让我看到有一个错误,但是我太快离开了,实际读取它并查看错误是什么!

有没有人知道如何“暂停”DOS窗口或者可能使用python将其输出传递给文件或其他东西?

这是我的代码,它调用弹出DOS窗口并在其中出错的脚本:

py_path2 = “C:\ Python25 \ python.exe” py_script2 = “C:\数据下载\ PythonScripts \ DownloadAdministrative.py” subprocess.call([py_path2,py_script2])

非常感谢!

干杯

2 个答案:

答案 0 :(得分:0)

尝试在脚本末尾执行raw_input()命令(在Python 3中为input())。 这将暂停脚本并等待键盘输入。如果脚本引发异常,则需要捕获它然后发出命令。

此外,有一些方法可以读取命令的stdout和stderr流,尝试查看http://docs.python.org/library/subprocess.html处的subprocess.Popen参数。

答案 1 :(得分:0)

subprocess.call接受与Popen相同的参数。见http://docs.python.org/library/subprocess.html

我认为你对论证stderr特别感兴趣。也许这样的事情会有所帮助:

err = fopen('logfile', 'w')
subprocess.call([py_path2, py_script2], stderr=err)
err.close()

如果您直接使用Popen,而不是在call中将其包裹起来,则可以执行更多操作。