跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • cmd 运行 Python 文件时遇到错误如何停留界面?
未分類
19 2 月 2021

cmd 运行 Python 文件时遇到错误如何停留界面?

cmd 运行 Python 文件时遇到错误如何停留界面?

資深大佬 : oldbird 2

正常运行是依次打印出处理的文件,遇到错误窗口就自动消失了,怎么让窗口及提示的错误信息保留下来?谢谢

大佬有話說 (9)

  • 資深大佬 : LZSZ

    最后加上 os.system(“pause”)

  • 資深大佬 : jim9606

    用 try-catch 包住整个主函数,捕捉所有异常后 input(“Press any key…”)

  • 資深大佬 : IgniteWhite

    @jim9606 哈哈和我一样

  • 資深大佬 : CallMeReznov

    python test.py >test.log
    直接重定向到文件,想怎么看都可以.

  • 資深大佬 : zictos

    方法一:
    先打开 cmd,再用 python test.py 这样的命令运行 py 文件就可以停留界面,双击不行。

    方法二(只需要在每个 py 文件前面加上 10 行代码即可,代码中的****替换成四空格缩进):
    import time, os
    import win32gui as w
    title = w.GetWindowText(w.GetForegroundWindow())
    if ‘cmd’ in title:
    ****pass
    else:
    ****os.system(‘title “cmd”‘)
    ****filepath = os.path.realpath(__file__)
    ****cmd = ‘cmd /k “python %s”‘ % filepath
    ****os.system(cmd)

    #正式代码开始
    for i in range(10):
    ****print(i)

  • 資深大佬 : ysc3839

    @zictos 你这段代码问题挺多的,要读取和修改控制台的标题的话,用 GetConsoleTitle 和 SetConsoleTitle 即可。用 GetForegroundWindow 的话,遇到 Windows Terminal 等终端的话获取的就不是当前控制台的标题了。
    另外要判断是否是通过 cmd 运行的话,我会选择通过父进程名来判断。

  • 資深大佬 : zictos

    @ysc3839 #6
    只是省时间随便写一下,给主一个思路,达到能双击运行并且不退出的效果,暂时没考虑那么多。如果有问题可以多加几个判断。

    不过获取父进程的名称确实是个好办法,这样就只需要在 py 文件的前面加上下面两行代码就可以了:

    import os, psutil; pp = psutil.Process(os.getppid()).name();
    if pp != ‘cmd.exe’: os.system(‘cmd /k “python %s”‘ % os.path.realpath(__file__))

  • 資深大佬 : pkookp8

    最外层 try catch
    然后 sleep10000000 或者 1-2 的方法

  • 資深大佬 : qile1

    cd py 目录
    python testt.py
    pause

    保存为运行心疼我.bat 双击打开

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具