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

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • Python 新手,有个关闭终端的问题
未分類
21 7 月 2020

Python 新手,有个关闭终端的问题

Python 新手,有个关闭终端的问题

資深大佬 : luxinfl 7

我搞了个一键打卡的脚本,双击后会弹出一个窗口显示运行消息。我想程序执行完自动关闭这个窗口。结果搜遍了百度,就找了这俩命令,结果鸟用没有。

  • os._exit(0)
  • sys.exit(0)

有什么办法可以解决么

大佬有話說 (25)

  • 資深大佬 : ruanimal

    是 windows 吧,那个是系统控制台的窗口,在脚本里是关闭不了的。

    可以把脚本的扩展名改成 pyw, 可以避免这个窗口

  • 資深大佬 : css3

    @luxinfl 你是不是嫌黑框闪的太快了?
    time.sleep(10)
    sys.exit(0)
    或者搞个按键监听,按下 C 键再退出,否则停留在黑框

  • 資深大佬 : css3

    @css3 好像看错主问题了

  • 資深大佬 : dingwen07

    黑框在执行完肯定会关掉的 除非启动方式不是给 python 传值
    如果用了 gui 那就用 destroy 关掉窗体

  • 資深大佬 : princelai

    再写个.bat ,调用你的脚本

  • 資深大佬 : Vhc

    Python 脚本运行结束会自动关闭窗口的。你确定自己不是写了死循环?

  • 資深大佬 : shuax

    改成 pyw

  • 主 資深大佬 : luxinfl

    @ruanimal 我试了 pyw,也没什么用啊。python 的窗口还是会出来的

  • 主 資深大佬 : luxinfl

    @css3 没有关闭啊,我卡打完了,窗口还是会一直在那里

  • 資深大佬 : misaka19000

    Windows 执行完毕 cmd 会自动关闭了

  • 主 資深大佬 : luxinfl

    @Vhc 我把代码贴出来了,就简单的一步步往下写的啊

  • 主 資深大佬 : luxinfl

    @misaka19000 就是没关闭,所以才想问问咋回事

  • 資深大佬 : centreon

    你可以尝试获取窗口进程的 pid 号,在退出前 kill 之。

  • 資深大佬 : MerlinShieh

    一般执行完就会关闭掉的,如果不行的话可以写个 bat 去执行脚本,再不行就获取 pid 然后 kill

  • 主 資深大佬 : luxinfl

    @MerlinShieh bat 试过了,打包成 exe 也试了,都不行。。感觉只能 kill 了。。

  • 資深大佬 : oahebky

    无语,我就说早上第一次点卡这个帖子看着奇怪。理论上不可能发生的事情没法回答。

    原来说的是调用 selenium 后「浏览器」窗口没有关闭的问题。

    搞得神神秘秘的,selenium 不说,「浏览器」也不说;提问题,问题都描述不清楚。

  • 資深大佬 : bonfy

    “`python
    options = webdriver.ChromeOptions()
    options.add_argument(‘headless’)
    options.add_argument(‘–disable-gpu’)
    executable_path = CONFIG.get(‘driverpath’)
    driver = webdriver.Chrome(
    chrome_options=options, executable_path=executable_path
    )

    …
    driver.close()
    “`

    最好还是用 api 之类的吧

  • 資深大佬 : css3

    @oahebky

  • 資深大佬 : ruanimal

    @oahebky 看来提问的基本修养很重要啊。。。

  • 主 資深大佬 : luxinfl

    @oahebky nono 不是浏览器窗口没关闭的问题。不过你硬要这么说也没啥问题,程序还没跑完,python 的命令行窗口还是一直在显示。现在在代码后面调用了 driver 的 quit 方法,程序就结束了,命令行窗口和浏览器就都关闭了

  • 主 資深大佬 : luxinfl

    @bonfy 我最后调用了 driver.quit()方法。网上呢,一直在说什么 os.exit(),system.exit(),根本就没啥用。

  • 資深大佬 : ungrown

    @luxinfl #21
    这不是网上提供的信息不对,也不是你使用网上信息的方法不对,是你弄错了导致问题的原因。
    上面 @oahebky #16 提到浏览器没关闭导致流程被阻塞,不管其叙述是否覆盖了所有细节,思路没有错。
    你在 python 进程里起了一个浏览器的 driver,那么这个 driver 不关闭的话,当然是要阻塞后续代码的,那两行 exit 的代码压根没有机会被运行。
    如果你把 driver 退出的话,exit 就不需要了,实际上我们平时写的东西也很少去用 exit 的,因为代码跑完了,python 会自动退出,不需要 exit 。exit 一般用在特殊场景下,需要在程序运行过程中、尚未结束的时候退出,才会用到。
    冰箱门还没关,却一个劲在那琢磨为什么冰箱里面的灯还不灭呢?我明明已经把要拿的东西拿出来了呀……
    所以你这属于基本概念不扎实导致的,因果链没建立,所以才会既不知道怎么来的也不明白怎么没的。

  • 資深大佬 : Gakho

    @luxinfl #21 。。。怎么说呢,应该是基础导致了提问题的要点都不对了,用到了 selenium 都能只口不提

  • 主 資深大佬 : luxinfl

    @ungrown 确实基本概念不太扎实。刚写一两天。而且我是看到我最后的 print ()方法是执行的了,所以我会认为代码已经跑到后面。

  • 主 資深大佬 : luxinfl

    @Gakho 所以我怕我提的问题不清晰,我把代码都贴出来了

文章導覽

上一篇文章
下一篇文章

AD

其他操作

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

51la

4563博客

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