在ArcMap中运行Python脚本

0 投票
2 回答
2135 浏览
提问于 2025-04-16 01:22

在ESRI的ArcMap中运行一个Python脚本,这个脚本又尝试调用另一个Python脚本,使用的是subprocess模块。不过,它执行的那个系统窗口(也就是DOS窗口)只出现得很短暂,我只能看到有错误,但窗口消失得太快,我根本来不及看清楚错误是什么!

有没有人知道怎么“暂停”这个DOS窗口,或者用Python把它的输出内容保存到一个文件里之类的办法?

这是我用来调用会弹出DOS窗口并且出错的脚本的代码:

py_path2="C:\Python25\python.exe"
py_script2="C:\DataDownload\PythonScripts\DownloadAdministrative.py"
subprocess.call([py_path2, py_script2])

非常感谢!

祝好

2 个回答

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 来包裹它,你可以做更多的事情。

0

试着在你的脚本最后加一个 raw_input() 命令(在Python 3中是 input())。这样可以让脚本暂停,等待你输入内容。如果脚本出现了错误,你需要处理这个错误,然后再执行这个命令。

另外,还有一些方法可以读取你命令的标准输出和错误输出,建议你看看 http://docs.python.org/library/subprocess.html 上关于subprocess.Popen的参数。

撰写回答