39

我刚开始上大学,我们将使用 python。我们真的什么都没做,所以我下载了程序并做了一些打印命令,就是这样。

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

我环顾了这个网站,没有一个解决这个问题的方法有效,或者我不理解它们。

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

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

4

17 回答 17

26

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

input('Press ENTER to exit')

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

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

于 2013-04-04T20:26:52.470 回答
16

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

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

python -i script.py

这意味着如果您设置 -i 变量并运行您的模块,则 python 不会在 SystemExit 上退出。在此链接上阅读更多内容。

于 2016-05-05T13:22:01.753 回答
9

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

python yourprogram.py 

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

于 2012-09-11T18:13:53.157 回答
7

input('Press ENTER to exit') 

最后让它停下来。

于 2018-09-14T21:40:41.003 回答
6

从您的主要 Python 库源中使用 windows 命令提示符运行该命令。例子。

C:\Python27\python.exe directoryToFile\yourprogram.py
于 2012-09-11T18:35:06.113 回答
4

如果你只是想要延迟

from time import *

sleep(20)
于 2013-07-31T20:56:59.320 回答
3

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

于 2021-01-29T10:44:08.943 回答
2

根据我使用它的目的,或者如果我正在做其他人会使用的事情,我通常只是input("Do eighteen backflips to continue")为了我,如果其他人会使用我只是创建一个批处理文件并在之后暂停它

cd '/file/path/here'
python yourfile.py
pause 

如果要对文件进行重命名、移动、复制等,我会使用上述方法,并且我的 cmd 需要位于特定文件夹中,以便将它们放在我想要的位置,否则 - 只是

python '/path/to/file/yourfile.py'
pause
于 2017-09-25T17:04:02.860 回答
1

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

closeInput = raw_input("Press ENTER to exit")
print "Closing..."
于 2013-11-14T08:44:32.720 回答
1

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

于 2018-07-26T02:38:13.020 回答
0

我想我回答这个问题为时已晚,但无论如何这里什么都没有。

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

  1. 使用睡眠(_sometime)

from time import * sleep(10)

  1. 使用提示消息(注意我使用的是 python 2.7)

exit_now = raw_input("Do you like to exit now (Y)es (N)o ? ")'

if exit_now.lower() = 'n'

//more processing here

或者,您也可以混合使用这两种方法,您可以在其中提示输入消息并使用 sleep(sometime) 来延迟窗口关闭。选择是你的。

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

于 2017-02-27T04:41:04.693 回答
0

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

于 2020-09-22T20:34:17.227 回答
0

好吧,我遇到了类似的问题,通过添加环境变量来解决。

在窗口中添加系统变量

姓名 : PYTHONPATH

价值 :C:\Python27;

你的 Python 路径。

于 2016-12-07T12:12:45.180 回答
0

我在互联网上的任何地方都找不到真正的非脚本特定,双击并且窗口不会关闭解决方案。我想我懒得在不需要的时候拖放或输入,所以经过一些实验后,我想出了一个解决方案。

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

也许有充分的理由不这样做,如果有更多知识,请发表评论,但我认为如果遇到任何问题,如果需要,很容易恢复。一个可能不受欢迎的副作用是拖放或键入并从命令提示符运行现在会打开第二个命令提示符,而不是在您拖放或键入的命令提示符中运行。

现在,为了实现,我将初始 python 脚本称为 python_cmd_k.pyw。我正在使用 Python 3.7。其他版本所需的代码可能有所不同。将路径 C:\Python37\python.exe 更改为 python 安装的位置。如果 .pyw 文件还没有,则通过 Windows 将它们关联到 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 的文件关联,但对我来说它位于:

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\""
于 2019-03-08T07:03:53.773 回答
0

来晚了,但万一有人从谷歌来这里——

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

“python NameOfTheProg.py”到 cmd 行

于 2018-06-02T12:01:21.593 回答
0

好吧,我迟到了,但我仍然会回答。大多数答案没有任何意义(对我来说)

首先,没有设置使文件不自动关闭。但是,您可以编写一个脚本来不允许文件自动关闭!

我通常这样做(在脚本或 print() 的末尾):

notClose = "close"
while True:
    notClose = "dontClose"

该脚本使文件继续执行操作(在这种情况下,更改变量字符串),因此它不会关闭。您可以将变量名称和字符串更改为其他内容,但不要使两个字符串相同。

或者,如果您愿意,只需使用 VS Code(Visual Studio Code)。它允许您在程序中运行文件,并且.. 程序不会关闭,即使您遇到错误!(它会告诉你错误是什么,通常它会立即关闭)

于 2022-02-25T10:35:51.060 回答
-2

很简单:

  1. 以管理员身份打开命令提示符。
  2. 类型python.exe(前提是您在环境变量中给出了它的路径)

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

这对我有用。

于 2020-06-16T17:57:31.147 回答