如何在Microsoft Windows中执行时立即停止Python关闭

时间:2012-09-11 17:48:59

标签: python windows

我刚开始上大学,我们将使用python。我们真的没有做任何事情所以我已经下载了程序并完成了一些打印命令,就是这样。

当我运行.py文件(print命令)时,它会在出现后立即关闭。我明白为什么会这样做 - 它给出了输出,所以它完成了它需要做的事情 - 但我也明白你可以阻止这种情况发生。

我浏览了这个网站,并没有给出这个问题的解决方案,或者我不理解它们。

是否有一个简单的命令可以输入到我的IDLE编辑器中,该命令会暂停程序还是什么?我按照某人的建议尝试了input("prompt: "),这没有任何区别。

如果没有此命令,有没有办法更改计算机上的设置,以便程序不会自动关闭?

15 个答案:

答案 0 :(得分:17)

在Python 3中,将以下内容添加到代码的末尾:

input('Press ENTER to exit')

这将导致程序等待用户输入,按ENTER键导致程序完成。

您可以通过这种方式双击Windows中的script.py文件。

答案 1 :(得分:11)

对我来说唯一有用的是-i命令行参数。

将所有python代码放在​​.py文件中,然后运行以下命令;

python -i script.py

这意味着如果你设置-i变量并运行你的模块,那么python就不会在SystemExit上退出。 请阅读此link

答案 2 :(得分:6)

打开cmd(命令提示符)并从那里运行Python命令。 (在Windows上运行或搜索并键入cmd) 它应该是这样的:

python yourprogram.py 

这将在cmd中执行您的代码,它将保持打开状态。 但是,要使用python命令,必须正确安装Python,以便cmd将其识别为命令。如果没有发生,请检查您的操作系统的正确安装和变量注册

答案 3 :(得分:5)

使用主Python库源中的Windows命令提示符运行该命令。 实施例。

C:\Python27\python.exe directoryToFile\yourprogram.py

答案 4 :(得分:2)

如果你只是想要延迟

from time import *

sleep(20)

答案 5 :(得分:2)

取决于我正在使用它,或者如果我正在做其他人会使用的东西,我通常只是input("Do eighteen backflips to continue")如果它只是为了我,如果其他人将使用我只是创建一个批处理文件

后暂停
cd '/file/path/here'
python yourfile.py
pause 

如果要重命名,移动,复制等文件,我会使用上面的内容,并且我的cmd需要位于特定文件夹中,以便将内容放在我想要的位置,否则 - 只需

python '/path/to/file/yourfile.py'
pause

答案 6 :(得分:1)

在Python 2.7中,将其添加到我的py文件(if __name__ == '__main__':)的末尾有效:

closeInput = raw_input("Press ENTER to exit")
print "Closing..."

答案 7 :(得分:1)

我知道一个简单的答案! 打开你的 cmd,输入:cd C:\directory your file is in 然后输入 python your progam.py

答案 8 :(得分:0)

我认为我来不及回答这个问题,但无论如何都没有。

之前我遇到过同样的问题,我认为有两种可供选择的解决方案。

  1. 使用sleep(_sometime)
  2. from time import * sleep(10)

    1. 使用提示信息(请注意我使用的是python 2.7)
    2. exit_now = raw_input("Do you like to exit now (Y)es (N)o ? ")'

      if exit_now.lower() = 'n'

      //more processing here

      或者你可以使用这两种方法的混合,你也可以提示输入消息并使用sleep(某些时候)延迟窗口关闭。选择是你的。

      请注意以上只是想法,如果您想在实践中使用其中任何一个,您可能需要考虑一下您的应用程序逻辑。

答案 9 :(得分:0)

在这里的晚些时候,但万一有人从谷歌来到这里---

转到.py文件的位置。按SHIFT然后右键单击任意位置并从此处选择打开命令提示符。一旦启动,只需添加

“python NameOfTheProg.py”到cmd行

答案 10 :(得分:0)

它关闭的原因是因为程序不再运行,只需添加任何循环或输入即可解决此问题(或者您可以通过空闲运行它)。

答案 11 :(得分:0)

我无法在Internet上的任何地方找到真正的非脚本专用双击,并且该窗口无法关闭解决方案。我想当我不需要拖拽或键入时,我太懒了,所以经过一些试验后,我想出了一个解决方案。

基本思想是重新关联.py文件,以便它们在运行预期的脚本之前运行单独的初始脚本。初始脚本将使用/ k参数启动一个新的命令提示符窗口,该窗口将在完成后使命令提示符保持打开状态,并在新窗口中运行您想要的脚本。

也许有充分的理由不这样做,如果有更多知识的人请发表评论,但是我认为如果遇到任何困难,很容易在需要时还原。一个可能不希望的副作用是从命令提示符处拖放或键入并运行,现在打开了另一个命令提示符,而不是在您拖动或键入的命令提示符中运行。

现在,对于实现,我将初始python脚本称为python_cmd_k.pyw。我正在使用Python 3.7。对于其他版本,所需的代码可能有所不同。将路径C:\ Python37 \ python.exe更改为python安装位置。如果尚未通过Windows将.pyw文件与pythonw.exe(不是python.exe)相关联,则它们。

import subprocess
import sys

#Run a python script in a new command prompt that does not close
command = 'start cmd /k C:\Python37\python.exe "' + sys.argv[1] + '"'
subprocess.run(command, shell=True)

这将在您每次双击任何.py脚本时运行,并启动新的命令提示符以运行您双击的脚本。在此初始脚本运行时,通过pythonw.exe运行会隐藏命令提示符窗口。否则,如果通过python.exe运行它,则由于第一个窗口每次都会短暂显示,因此会出现令人讨厌的命令提示符闪烁。显示所需的脚本是因为上面的初始脚本中的代码通过python.exe运行了所需的脚本。

如果尚未通过Windows将.py文件与python.exe(不是pythonw.exe)相关联,请立即将它们与Windows关联,并编辑该关联的注册表项(免责声明:如果不确定什么,请务必在编辑注册表之前先对其进行备份)您正在执行)。我不知道注册表中是否存在用于不同版本Windows的文件关联的不同路径,但对我而言,位于:

HKEY_CURRENT_USER\Software\Classes\Applications\python.exe\shell\open\command

将数据更改为pythonw.exe路径(而不是python.exe),并将路径添加到上面的ptyhon脚本,并将“%1”作为参数(“%1”传递双击文件的完整路径)。例如,如果pythonw.exe和python_cmd_k.pyw位于C:\ Python37 \,则:

"C:\Python37\pythonw.exe" "C:\Python37\python_cmd_k.pyw" "%1"

没有必要将python_cmd_k.pyw与pythonw.exe放在同一目录中,只要您为两者提供正确的路径即可。您可以将它们放在.reg文件中,以方便在使用脚本和默认行为之间来回切换。在以下示例中根据需要更改路径(注册表中的位置,python的安装位置,python_cmd_k.pyw脚本的放置位置)。

使用ptyhon_cmd_k.pyw(根据需要更改路径):

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Classes\Applications\python.exe\shell\open\command]
@="\"C:\\Python37\\pythonw.exe\" \"C:\\Python37\\python_cmd_k.pyw\" \"%1\""

默认版本(根据需要更改路径):

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Classes\Applications\python.exe\shell\open\command]
@="\"C:\\Python37\\python.exe\" \"%1\""

答案 12 :(得分:0)

只需在空闲的“ input()”中添加一行代码

答案 13 :(得分:-1)

我有类似的问题, 它通过添加环境变量来解决。

在窗口中添加系统变量

姓名:PYTHONPATH

价值:C:\Python27;

你的Python路径。

答案 14 :(得分:-2)

非常简单:

  1. 以管理员身份打开命令提示符。
  2. 键入python.exe(前提是您已在环境变量中指定了路径)

然后,在同一命令提示符窗口中,python解释器将以>>>开头

这对我有用。