我正在编写一个 python 程序,无论它是在 windows 命令提示符还是 windows powershell 上运行,我都想以不同的方式运行。我想知道是否有办法确定python在程序中运行的环境。
提前致谢!
首先使用此代码获取您的父进程 ID。然后调用:
if ("powershell.exe" in os.popen("tasklist /fi \"PID eq %d\"" % parentPID).read()) {
# We're a child of powershell!!
...
}
虽然说实话,如果你是由 powershell 运行的,那么以不同的方式执行是有点奇怪的。您应该认真考虑为什么要这样做,并评估您是否在做一些不必要的事情。
如果您想要平台(这在您的最后陈述中有所暗示),平台模块通常会告诉您您想知道的内容。
>> import platform
>> platform.architechture()
('64bit', 'WindowsPE')
请注意,从建议您用于 Mac 以确定 64 位与 32 位的文档中。is_64bits = sys.maxsize > 2**32
在调用脚本时,您应该认真地添加另一个参数。
在脚本内部时,该sys.args
变量会为您提供传递给脚本的所有参数(首先始终是脚本的名称)。
还有库optparse可以帮助您完成工作.....
你正在做的不是一个好的做法:P恰恰相反:)无论如何,不要太努力,我的意思是我不知道你想要做什么,但这听起来像是一个危险的想法。
您可以尝试一种解决方案。您可以从 Python 代码中调用一些 powershell 命令作为 Write-Host(cmd 中的 echo 等效项)并获取调用结果。如果失败则不是 PowerShell。(我现在无法测试)。