在ArcMap中运行Python脚本
在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的参数。