我需要检查Python脚本是否在Windows Terminal中运行(而不是CMD.exe、Powershell、bash等)。如何才能做到这一点?
lf5gs5x21#
我可以提供这样的方法:
is_windows_terminal = sys.platform == "win32" and os.environ.get("WT_SESSION")
但也许有更干净的解决办法...
yftpprvb2#
您可以获取运行/spawned的进程的父进程ID(PID),然后运行您的python脚本并在Windows CMD的任务列表中搜索,查看此pid属于谁:在python脚本中添加以下行
PID
pid
import psutil my_father_pid = str(psutil.Process().ppid()) print my_father_pid # or print(my_father_pid) in python3
现在在任务列表中搜索您已获取的'my_father_pid':
tasklist /v | findstr "<my_father_pid>"
dnph8jn43#
我已经为这个问题创建了一个包:https://pypi.org/project/AssertWT/
import assertwt assertwt.is_wt() # True,False
is_wt方法的源代码可以在github上找到
is_wt
3条答案
按热度按时间lf5gs5x21#
我可以提供这样的方法:
但也许有更干净的解决办法...
yftpprvb2#
您可以获取运行/spawned的进程的父进程ID(
PID
),然后运行您的python脚本并在Windows CMD的任务列表中搜索,查看此pid
属于谁:在python脚本中添加以下行
现在在任务列表中搜索您已获取的'my_father_pid':
dnph8jn43#
我已经为这个问题创建了一个包:https://pypi.org/project/AssertWT/
is_wt
方法的源代码可以在github上找到