【问题标题】:How to stop command prompt from closing in python?如何阻止命令提示符在 python 中关闭?
【发布时间】:2021-05-03 01:12:25
【问题描述】:

我对python很陌生..我使用了代码

x = input(" Hey what is your name " )       
print(" Hey, " + x)  
input(" press close to exit ")

因为我在互联网上寻找过这个问题并且知道你必须在最后放置一些虚拟输入行以阻止命令提示符关闭但我仍然面临问题..请帮助

我正在使用 python 3.3

【问题讨论】:

  • 你可以通过python空闲平台运行脚本,所以它不会'关闭'或者你可以打开一个命令行(cmd)然后从那里运行你的脚本,它不会'关闭'跨度>
  • 我不确定您在寻找什么。 python -i script.py 做你想做的事吗?什么命令提示符正在关闭? python 命令提示符或运行 python 的 shell?
  • 嗯,我想我知道问题所在:您是否在第二个“输入”语句之后给出输入?输入命令的目的是挂起(“呆在那里而不是关闭”)直到用户按下一个键。如果你给出一个输入,它就会关闭。
  • 不,我给出第一个输入然后第二行我要求 python 打印它.. 然后我再次要求 python 输入以便它留在那里.. 它在空闲时完美运行但不是在 cmd 上

标签: python python-3.x


【解决方案1】:

在 windows 上,关闭的是 CMD 控制台,因为 Python 进程存在于末尾。

为防止这种情况,请先打开控制台,然后使用命令行运行您的脚本。为此,请右键单击包含脚本的文件夹,选择 Open console here 并在控制台中输入 python scriptname.py

正如您所发现的,替代方法是推迟脚本,在末尾添加一个input() 调用。这允许脚本用户选择脚本何时结束和控制台关闭。

【讨论】:

  • 请注意,您(至少在 Windows 7 上)需要 shift + 右键单击​​包含源文件的目录,而不是脚本本身。
  • 是的,我也试过了,但即使添加了输入,命令提示符仍然会立即关闭
  • @user1946082:听起来您在脚本中创建了一个错误。 input() 调用本身不会在没有输入的情况下退出 Python。
  • 好吧,它也不会像 OP 那样等待我的系统。据我所知,没有例外。
  • @martineau:用python 3代替2,或者用raw_input()
【解决方案2】:

这可以通过 os 模块来完成。以下是简单的代码:

import os
os.system("pause")

这将产生暂停,并要求用户按任意键继续。

[编辑:上述方法适用于 windows 操作系统。 mac 似乎有问题(如 ihue 所指出的,在 cmets 中)。问题是“os”库是特定于操作系统的,某些命令可能无法像在另一个操作系统中那样在一个操作系统上工作。]

【讨论】:

  • "os" 库是操作系统特定的。我在 Windows 上使用它,它工作得很好,因为 cmd 中实际上有一个“暂停”命令。也许,linux 有其他方法可以实现这一点。
  • 好的,感谢您的澄清。我将查看如何在 Mac 上专门执行此操作,但您应该在回答中提到这一点。
  • True ihue,我补充说。感谢您提出这个问题。请分享您的发现,也适用于 mac。
【解决方案3】:

对于 Windows 环境:

如果你不想进入命令提示符(或者在命令提示符受限的环境下工作),我认为下面的解决方案是goo我使用的解决方案是创建一个bat文件。

使用记事本创建文本文件。在文件中,内容将类似于:

my_python_program.py pause

然后将文件保存为“my_python_program.bat” - 不要忘记选择“所有文件!

当您运行 bat 文件时,它将运行 python 程序并在最后暂停以允许您读取输出。然后,如果您按任意键,它将关闭窗口。

【讨论】:

    【解决方案4】:

    只需在对我有用的程序末尾添加简单的输入

    input()
    

    试一试,它会正常工作

    【讨论】:

      【解决方案5】:

      试试这个,

      import sys
      
      status='idlelib' in sys.modules
      
      # Put this segment at the end of code
      if status==False:
          input()
      

      这只会停止控制台窗口,而不是 IDLE。

      【讨论】:

        猜你喜欢
        • 2014-04-10
        • 2020-12-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-10-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多