0

从 ESRI 的 ArcMap 中运行 python 脚本,并使用 subprocess 模块调用另一个 python 脚本(或至少尝试调用它)。但是,它在(DOS 窗口)中执行的系统窗口只是非常短暂地出现,足以让我看到有错误但消失得太快,以至于我无法真正阅读它并查看错误是什么!

有谁知道“暂停”DOS窗口或可能将其输出通过管道传输到文件或使用python的东西的方法?

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

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

非常感激!

干杯

4

2 回答 2

0

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

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

于 2010-07-15T21:00:28.067 回答
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.

于 2010-07-15T21:03:16.330 回答