【问题标题】:Command prompt closes before program finishes命令提示符在程序完成之前关闭
【发布时间】:2017-10-11 23:57:06
【问题描述】:

enter image description here我正在 Windows XP 中使用 Python 3.4.4。当我双击运行 .py 文件时,它只询问用户名,然后突然终止命令提示符。所以我看不到最终结果。这是我的代码:

from datetime import datetime
import time
from os import getcwd
import sys
name = input("Your name please: ")
print("Hello",name,",your system is:",sys.platform)
print("Your current work directory is:",getcwd())
print("Currenttime:",time.strftime("%a"),datetime.today(),time.strftime("%p"))
print("Thanks for trying. \u00a9 Gaz does Python")
input()

有人可以帮帮我吗?我试过time.sleep(),但也没有用。

【问题讨论】:

  • 使用默认 OEM 代码页打印 U+00A9 时,它可能会因编码错误而死。
  • 从 cmd shell 运行脚本时是否失败并出现错误?
  • 没有错误。它只是提示输入名称,然后像眨眼一样闪烁。如果我仔细观察,我可以看到闪烁时的输出。
  • 我的意思是,如果你在 cmd shell(即命令提示符)中切换到目录 (cd path\to\script) 后以 "python script.py" 运行它。

标签: windows python-3.x windows-console


【解决方案1】:

** 编辑 **

没有看到最后的输入。我说的无效。提示可能就像@eryksun 所说的那样快要死了。

** 原答案**

最简单的答案是手动打开 cmd.exe,导航到您的文件,然后使用“python yourScript.py”执行您的脚本

当没有进程在运行时会退出 Windows 提示符。当您双击您的文件时,CMD 与执行“关联”并在执行完成后退出。 通过事先手动“无目的”运行它,不需要提示退出,因为“他有另一个目的”。

您还可以通过在程序结束时使用最后一个输入来破解您的出路。这将强制提示等待此输入​​。 (例如臭名昭​​著的“按回车继续”)

【讨论】:

  • 当你双击一个 Python 文件时,它应该运行 python.exe,而不是 cmd.exe。控制台是 conhost.exe,而不是 cmd.exe(就像 X 术语在 Linux 中不是 bash)。如果从资源管理器中运行 python.exe(或 py.exe),它会将 conhost.exe 作为子进程启动。如果它是从已经连接到控制台的另一个进程(例如 cmd.exe)运行的,那么它通常会继承父控制台,除非被指示创建新控制台。
  • @kuu Aku @eryksun ,我尝试删除 \u00a9 并添加 input( "PRESS ENTER TO CONTINUE") .... 但没有任何反应:(
  • 好吧。我在没有 \u00a9 和最终输入的情况下尝试了它,它按预期工作。 (我选择“meh”作为名称)。也许尝试删除行(不是最终输入),直到它可以查看发生了什么。您还可以尝试/捕获导入和输入。
  • 感谢您对流程的解释@eryksun。
  • 在这种情况下,修复 Python 3.4 安装以将 .py 文件与其关联。希望这会更改您正在使用的 Python.File 文件类型(如果 2.7 是每个用户,3.4 是每台机器,则可能不会)。如果仍然是错误的关联,请尝试使用控制面板的默认程序应用程序将 .py 关联更改为“Python”(不是“python.exe”并且不要浏览手动关联 python.exe)。 It should have the Python logo, and when chosen the info in the default programs list when .py is selected should say it's from the Python Software Foundation.
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-10
  • 2021-09-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-30
相关资源
最近更新 更多