相关疑难解决方法(0)

在python中中断/中断time.sleep()

我需要使用ctrl c从time.sleep()中断.

While 1:
    time.sleep(60)
Run Code Online (Sandbox Code Playgroud)

在上面的代码中,当控件进入time.sleep函数时,需要经过整整60秒才能处理CTRL C

有没有优雅的方式来做到这一点.这样我即使在控制时间内也可以中断.睡眠功能

编辑

我在一个遗留实现上测试它,在Windows 2000上使用python 2.2导致了所有的麻烦.如果我使用了更高版本的python CTRL C会中断sleep().我通过在for循环中调用sleep(1)来快速破解.这暂时解决了我的问题

python

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

为什么此python键盘中断不起作用?(在pycharm中)

在pycharm中调试代码时,按Ctrl + C时,我的python try / except循环似乎不会触发键盘中断。我的代码如下所示:

numbers = []
loop = True

try: 
    # ===========SUBROUTINES==================

    def help():
        print("To view the list type 'view'"
              "\n To add an item type 'add'"
              "\n To remove an item type 'remove'"
              "\n To exit type exit or Ctrl + c can be used at any time")

    # =========SUBROUTENES END===============


    while loop:
        task = input("What do you want to do? Type \"help\" for help:- ")
        if task == 'help':
            help()
        else:
            print("Invalid return please try …
Run Code Online (Sandbox Code Playgroud)

python keyboardinterrupt pycharm try-except

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

PyCharm (i)Python 控制台:“在 Python 控制台中执行选择”(=Alt+Shift+E) 过程的“停止当前命令”而不丢失内存中的变量?

我习惯于能够强制停止所选代码的运行。这在 vscode 和 Spyder 中是可能的,并且不会丢失内存中的变量。

来自使用 iPypthon 控制台的 Spyder 的示例:您使用相同的“运行选择或当前行”(在 Spyder 中:F9)进程运行命令,您意识到它需要太长时间并且您想停止它。您只需使用“停止当前命令”(红色方块)即可。

在此输入图像描述

停止后,内存不会丢失,所有在停止时刻已知的变量仍然在内存中。证明:

在此输入图像描述

当你在 Spyder 中继续时,你可以选择直到停止时刻为止已经通过的任何代码行来继续(你也可以选择后面的代码行,但这通常没有意义)。例如,如果您停止一个长时间运行的循环,请更改该循环的代码,然后再次运行它,或者返回 10 行代码从那里开始。

您只需从任何代码行继续执行新的选择即可。

相比之下,在 PyCharm 中,我只找到红色方块“停止控制台”,它完全停止控制台,此后无法执行任何操作,内存中的所有变量都会丢失。

在“Python 控制台”中按红色方块或按 Ctrl+C 后,控制台将关闭。

在此输入图像描述

控制台打印出

Process finished with exit code 0
Run Code Online (Sandbox Code Playgroud)

并且无法再进行任何输入。在此停止之后,也不再有“在 Python 控制台中执行选择”(Shift+Alt+E) 的选项,它会导致:

在此输入图像描述

“Rerun”/“New Console”都重新启动内核,内存中的变量丢失:

在此输入图像描述

使用 iPython 控制台而不是标准 Python 控制台(您可以在 [File>Settings>MyProject>Project Interpreter] 下安装它,请参阅如何将 IPython 控制台添加到 PyCharm),同样的问题:

在此输入图像描述

即使在使用 iPython 的 Spyder 中,这种情况也会发生,“停止”会让我返回 iPython shell,而不会丢失内存中的变量。我猜这个线程Can I stopexecution of current module in ipython without leaves ipython是关于类似的问题,尽管与 PyCharm 没有特别相关。

如何在 PyCharm 中获得类似于 Spyder 的“停止当前命令”选项的停止选项,以便“停止”将变量保留在内存中,并且我可以从停止的地方继续?

请注意,调试模式 …

memory console menu ipython pycharm

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