如何检测 Python 是不是在 Git Bash 终端或 Windows cmd 中运行?
Posted
技术标签:
【中文标题】如何检测 Python 是不是在 Git Bash 终端或 Windows cmd 中运行?【英文标题】: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
。
【问题讨论】:
尝试使用os
和psutil
模块。例如,import os, psutil # Get the parent process name. pprocName = psutil.Process(os.getppid()).name()
另外,请查看geeksforgeeks.org/clear-screen-python
谢谢,您的示例适用于我的特定用例。
酷,我很乐意提供帮助。您希望我将其添加为答案吗?
是的,去吧。
【参考方案1】:
请尝试使用os
和psutil
模块。
例如,
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 显示了您可以使用正确类型的清除所做的所有检测。通常,最好是自己制作窗口或不清除屏幕,遗憾的是。
【讨论】:
以上是关于如何检测 Python 是不是在 Git Bash 终端或 Windows cmd 中运行?的主要内容,如果未能解决你的问题,请参考以下文章