我刚刚开始使用Python.当我在Windows上执行python脚本文件时,输出窗口出现但瞬间消失.我需要它留在那里,所以我可以分析我的输出.我该如何保持开放状态?
nos*_*klo 145
你有几个选择:
从已打开的终端运行程序.打开命令提示符并键入:
python myscript.py
Run Code Online (Sandbox Code Playgroud)
为此,您需要路径中的python可执行文件.只需检查如何在Windows 上编辑环境变量,并添加C:\PYTHON26(或安装python的任何目录).
当程序结束时,它会让你回到cmd提示符而不是关闭窗口.
添加代码以在脚本结束时等待.对于Python2,添加...
raw_input()
Run Code Online (Sandbox Code Playgroud)
...在脚本的末尾使它等待Enter密钥.该方法很烦人,因为您必须修改脚本,并且必须记住在完成后删除它.在测试其他人的脚本时特别烦人.对于Python3,请使用input().
使用暂停给您的编辑器.一些为python准备的编辑器会在执行后自动暂停.其他编辑器允许您配置它用于运行程序的命令行.我发现python -i myscript.py在运行时将其配置为" " 特别有用.在程序结束后,在程序环境加载的情况下,您将进入python shell,因此您可以进一步使用变量并调用函数和方法.
tzo*_*zot 47
cmd /k是打开任何控制台应用程序(不仅是Python)的典型方法,控制台窗口将在应用程序关闭后保留.我能想到的最简单的方法是按Win + R,键入cmd /k然后将所需的脚本拖放到"运行"对话框中.
Anu*_*yal 38
从已打开的cmd窗口启动脚本,或者在Python 2的脚本末尾添加类似的内容:
raw_input("Press enter to exit ;)")
Run Code Online (Sandbox Code Playgroud)
或者,在Python 3中:
input("Press enter to exit ;)")
Run Code Online (Sandbox Code Playgroud)
Ant*_*nio 19
在异常的情况下保持窗口打开(但是,在打印异常时)
if __name__ == '__main__':
try:
## your code, typically one function call
except Exception:
import sys
print sys.exc_info()[0]
import traceback
print traceback.format_exc()
print "Press Enter to continue ..."
raw_input()
Run Code Online (Sandbox Code Playgroud)
在任何情况下保持窗口打开:
if __name__ == '__main__':
try:
## your code, typically one function call
except Exception:
import sys
print sys.exc_info()[0]
import traceback
print traceback.format_exc()
finally:
print "Press Enter to continue ..."
raw_input()
Run Code Online (Sandbox Code Playgroud)
对于Python3,您必须使用它input()来代替raw_input(),当然还要调整print语句.
if __name__ == '__main__':
try:
## your code, typically one function call
except BaseException:
import sys
print(sys.exc_info()[0])
import traceback
print(traceback.format_exc())
print("Press Enter to continue ...")
input()
Run Code Online (Sandbox Code Playgroud)
在任何情况下保持窗口打开:
if __name__ == '__main__':
try:
## your code, typically one function call
except BaseException:
import sys
print(sys.exc_info()[0])
import traceback
print(traceback.format_exc())
finally:
print("Press Enter to continue ...")
input()
Run Code Online (Sandbox Code Playgroud)
fei*_*ann 13
你可以在之前结合答案:(对于Notepad ++用户)
按F5运行当前脚本并输入命令:
cmd /k python -i "$(FULL_CURRENT_PATH)"
Run Code Online (Sandbox Code Playgroud)
通过这种方式,您在执行Notepad ++ python脚本后保持交互模式,并且您可以使用变量等等:)
小智 9
使用以下两行创建Windows批处理文件:
python your-program.py
pause
Run Code Online (Sandbox Code Playgroud)
在python 2中,您可以使用:raw_input()
>>print("Hello World!")
>>raw_input('Waiting a key...')
Run Code Online (Sandbox Code Playgroud)
在python 3中,您可以使用:input()
>>print("Hello world!")
>>input('Waiting a key...')
Run Code Online (Sandbox Code Playgroud)
另外,你可以用time.sleep(时间)来做
>>import time
>>print("The program will close in 5 seconds")
>>time.sleep(5)
Run Code Online (Sandbox Code Playgroud)
使用atexit,您可以在程序退出时暂停.如果错误/异常是退出的原因,它将在打印堆栈跟踪后暂停.
import atexit
# Python 2 should use `raw_input` instead of `input`
atexit.register(input, 'Press Enter to continue...')
Run Code Online (Sandbox Code Playgroud)
在我的程序中,我将调用atexit.register放在except子句中,以便只有在出现错误时它才会暂停.
if __name__ == "__main__":
try:
something_that_may_fail()
except:
# Register the pause.
import atexit
atexit.register(input, 'Press Enter to continue...')
raise # Reraise the exception.
Run Code Online (Sandbox Code Playgroud)
我遇到了类似的问题.使用Notepad ++我以前使用命令:C:\Python27\python.exe "$(FULL_CURRENT_PATH)"在代码终止后立即关闭cmd窗口.
现在我正在使用cmd /k c:\Python27\python.exe "$(FULL_CURRENT_PATH)"它保持cmd窗口打开.
小智 5
你可以写
input()
Run Code Online (Sandbox Code Playgroud)
在你的代码末尾
因此,当您运行脚本时,它会等待您输入内容
{ENTER for example}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
268147 次 |
| 最近记录: |