相关疑难解决方法(0)

sys.exit(0)和os._exit(0)有什么区别

请帮助我根据功能的不同来澄清这两个python语句的概念:

  1. sys.exit(0)

  2. os._exit(0)

python

58
推荐指数
3
解决办法
7万
查看次数

为什么sys.exit()导致回溯?

根据如何在没有回溯的情况下退出Python?,调用sys.exit()Python脚本应该在没有回溯的情况下静默退出.

import sys
sys.exit(0)
Run Code Online (Sandbox Code Playgroud)

但是,当我使用python -i "exit.py"(或从Notepad ++) Windows 7上的命令行启动脚本时,SystemExit会显示异常的回溯.

U:\>python -i "exit.py"
Traceback (most recent call last):
  File "exit.py", line 2, in <module>
    sys.exit(0)
SystemExit: 0
>>>
Run Code Online (Sandbox Code Playgroud)

为什么sys.exit()从Windows命令行运行时显示回溯?

(供参考,我在Windows 7上使用Python 3.6.4)

python cmd exit traceback

5
推荐指数
1
解决办法
1682
查看次数

调用serve_forever()时打印语句不起作用?

我有以下小python脚本来运行本地服务器来测试一些html:

print('opened')

from http.server import HTTPServer, SimpleHTTPRequestHandler

server_address = ('', 8000)
httpd = HTTPServer(server_address, SimpleHTTPRequestHandler)

print("Listening at https://127.0.0.1:8000/ . . .")
httpd.serve_forever()
Run Code Online (Sandbox Code Playgroud)

当我在终端中运行它时,它会阻止print语句:没有打印.但服务器工作,我可以localhost:8000在浏览器中访问我的html文件.但是,如果我注释掉最后一行,则调用serve_forever(),它可以打印"打开"和"收听https:127.0.0.1:8000 /"..'.当然,它实际上并不起作用,因为现在服务器没有运行.

我觉得这很混乱.前一行在最后一行之前执行.为什么最后一行会导致前一行不起作用?

Windows7上的Python3,如果有人要问,但我怀疑这是相关的.

python simplehttpserver python-3.x

2
推荐指数
3
解决办法
2389
查看次数

标签 统计

python ×3

cmd ×1

exit ×1

python-3.x ×1

simplehttpserver ×1

traceback ×1