【问题标题】:How to detect if Python is running in Git Bash terminal, or Windows cmd?如何检测 Python 是否在 Git Bash 终端或 Windows cmd 中运行?
【发布时间】:2021-12-04 15:34:59
【问题描述】:

我想让我的 Python 脚本能够检测它是在 Git Bash 终端还是在 Windows cmd 命令行界面中执行的。例如,我正在尝试编写一个函数来清除终端(无论它是哪个终端),例如如果在 Git Bash 中,则回显 clear 命令,如果在 cmd 中,则回显 cls

我尝试使用 sys.platform 来检测这一点,但无论它运行在哪种类型的终端中,它都会返回 win32

【问题讨论】:

  • 尝试使用ospsutil 模块。例如,import os, psutil # Get the parent process name. pprocName = psutil.Process(os.getppid()).name()
  • 谢谢,您的示例适用于我的特定用例。
  • 酷,我很乐意提供帮助。您希望我将其添加为答案吗?
  • 是的,去吧。

标签: python cmd git-bash


【解决方案1】:

请尝试使用ospsutil 模块。

例如,

import os, psutil  # Get the parent process name. 
pprocName = psutil.Process(os.getppid()).name()

然后你可以根据 shell 来设置你的逻辑。

另外,您可能需要查看https://www.geeksforgeeks.org/clear-screen-python/

【讨论】:

  • 这行得通。在 Windows x64 环境中使用命令提示符、Powershell 和 Git Bash 进行了测试。输出将分别返回 cmd.exe、powershell.exe 或 winpty-agent.exe。此输出与条件语句中 sys.platform 模块的输出相结合,将使用户能够发出有效地与 shell 无关的终端命令,如果需要,也可以与操作系统无关。
【解决方案2】:

我不相信您的要求是可能的,但有几个答案here 显示了您可以使用正确类型的清除所做的所有检测。通常,最好是自己制作窗口或不清除屏幕,遗憾的是。

【讨论】:

    猜你喜欢
    • 2020-05-01
    • 2020-11-02
    • 1970-01-01
    • 1970-01-01
    • 2017-01-31
    • 1970-01-01
    • 2017-11-28
    • 2016-09-20
    • 1970-01-01
    相关资源
    最近更新 更多