相关疑难解决方法(0)

Python退出命令 - 为什么这么多,何时应该使用?

似乎python支持许多不同的命令来停止脚本执行.
我发现的选择是: quit(),exit(),sys.exit(),os._exit()

我错过了吗?他们之间有什么区别?你什么时候用?

python

435
推荐指数
4
解决办法
58万
查看次数

Python中exit()和sys.exit()之间的区别

在Python中,有两个同名的函数,exit()sys.exit().有什么区别,什么时候应该使用一个而不是另一个?

python exit

389
推荐指数
3
解决办法
28万
查看次数

有没有办法防止从sys.exit()引发的SystemExit异常被捕获?

文档说调用sys.exit()会引发一个SystemExit异常,该异常可以在外层捕获.我有一种情况,我想明确地,毫无疑问地退出测试用例,但是unittest模块捕获SystemExit并阻止退出.这通常很好,但我试图处理的具体情况是我们的测试框架检测到它被配置为指向非测试数据库的情况.在这种情况下,我想退出并阻止运行任何进一步的测试.当然,由于unittest陷入了SystemExit的困境并继续开心,它正在挫败我.

到目前为止我唯一想到的选择是使用ctypes或者类似的东西来直接调用exit(3),但这对于一些非常简单的东西来说似乎是一个相当糟糕的黑客.

python exception systemexit exit

53
推荐指数
2
解决办法
5万
查看次数

在不打印回溯的情况下打印错误消息,并在不满足条件时关闭程序

我已经看到了类似的问题,但没有一个真正解决了引用.如果我有这样的课程

class Stop_if_no_then():
    def __init__(self, value one, operator, value_two, then, line_or_label, line_number):
        self._firstvalue = value_one
        self._secondvalue = value_two
        self._operator = operator
        self._gohere = line_or_label
        self._then = then
        self._line_number = line_number

    def execute(self, OtherClass):
        "code comparing the first two values and making changes etc"
Run Code Online (Sandbox Code Playgroud)

我希望我的执行方法能够做的是,如果self._then不等于字符串"THEN"(在allcaps中),那么我希望它引发自定义错误消息并终止整个程序,同时也不显示追溯.

如果遇到错误,唯一应该打印的东西看起来像(我使用3作为示例,格式化不是问题)这个.

`Syntax Error (Line 3): No -THEN- present in the statement.`
Run Code Online (Sandbox Code Playgroud)

我不是很挑剔它实际上是一个异常类对象,所以在这方面没有问题.因为我将在while循环中使用它,简单如果,elif只是一遍又一遍地重复该消息(因为显然我没有关闭循环).我见过sys.exit(),但是也打印出一个巨大的红色文本块,除非我没有正确使用它.我不想在循环中捕获异常,因为在同一个模块中还有其他类需要实现这样的东西.

python error-handling customization exception traceback

16
推荐指数
6
解决办法
3万
查看次数

在Python中停止Lambda函数

在某个函数内部,我想停止整个Lambda进程,但不触发错误。我尝试查看上下文变量以停止它或只是调用它,exit()但是每次将其视为我不想跟踪的错误时。

如何在Python中成功结束Lambda进程?

python-2.7 aws-lambda

6
推荐指数
1
解决办法
4326
查看次数

为什么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
查看次数

Python CTRL-C 退出而不回溯?

构建一个简单的 Python 游戏“石头、剪刀、布”以供学习之用。

\n\n

我在这里读过一些关于退出 Python 而不进行回溯的其他文章。我正在尝试实现它,但仍然得到回溯!一些 Python 专家可以指出这个 Python 假人出了什么问题吗?这个想法是,单击 RETURN(或输入“yes”或“y”将使程序再次运行 play(),但按 CTRL-C 将关闭它而不进行回溯。I\xc2\xb4m 使用 Python 2.7。

\n\n
    # modules\n    import sys, traceback\n    from random import choice\n\n    #set up our lists\n    ROCK, PAPER, SCISSORS = 1, 2, 3\n    names = \'ROCK\', \'PAPER\', \'SCISSORS\'\n\n    #Define a function for who beats who?\n    def beats(a, b):\n        return (a,b) in ((PAPER, ROCK), (SCISSORS, PAPER), (ROCK, SCISSORS))\n\n    def play():\n        print "Please select: "\n        print "1 Rock"\n        print "2 Paper"\n        print "3 Scissors"\n        # player …
Run Code Online (Sandbox Code Playgroud)

python exit traceback python-2.7

4
推荐指数
1
解决办法
3637
查看次数

干净地退出python脚本

我试图退出python脚本没有出现恼人的错误消息:

Traceback (most recent call last):
  File "<pyshell#27>", line 3, in <module>
    sys.exit()
SystemExit
Run Code Online (Sandbox Code Playgroud)

我尝试过很多东西,但都没有.这是一个例子:

while True:
    print "hi", #this just tests to see if I have exited.
    try:
        sys.exit()
    except SystemExit:
        print "Exited"
Run Code Online (Sandbox Code Playgroud)

注意:解决方案不一定要接近这个代码,这只是我尝试过的一个例子

python exit-code

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