在ESRI的ArcMap中运行python脚本,它使用子进程模块调用另一个python脚本(或者至少尝试调用它)。然而,它执行的系统窗口(DOS窗口)只出现了很短的时间,足以让我看到有一个错误,但走得太快了,我无法真正阅读它,看看是什么错误!
有没有人知道一种“暂停”DOS窗口的方法,或者可能使用python将其输出到一个文件或其他文件中?
下面是我的代码,它调用弹出DOS窗口的脚本,并在其中包含错误:
py_script2="C:\DataDownload\PythonScripts\DownloadAdministrative.py“py_path2="C:\Python25\python.exe”subprocess.call(py_path2,py_script2)
非常感谢!
干杯
发布于 2010-07-16 05:00:28
尝试在脚本末尾执行raw_input()命令(在Python3中是input() )。这将暂停脚本并等待键盘输入。如果脚本引发异常,则需要捕获该异常,然后发出命令。
此外,还有一些方法可以读取命令的stdout和stderr流,请尝试查看http://docs.python.org/library/subprocess.html中的subprocess.Popen参数。
发布于 2010-07-16 05:03:16
subprocess.call接受与Popen相同的参数。请参阅http://docs.python.org/library/subprocess.html
我想你对argument stderr特别感兴趣。也许像这样的东西会有所帮助:
err = fopen('logfile', 'w')
subprocess.call([py_path2, py_script2], stderr=err)
err.close()如果你直接使用Popen,而不是在call中包装它,你可以做更多的事情。
https://stackoverflow.com/questions/3259999
复制相似问题