我正在写一个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')
请注意,从文档 ,它建议您使用is_64bits = sys.maxsize > 2**32
为Mac来确定64位与32位。
你可以尝试一个解决方案。 您可以从Python代码中调用一些PowerShell命令作为Write-Host(回声等效于cmd),并获得调用结果。 如果失败则不是PowerShell。 (我现在无法测试)。
你应该认真的只是在调用你的脚本时添加另一个参数。
当在脚本中时, sys.args
变量会给你所有传递给脚本的参数(首先总是脚本的名字)。
还有图书馆optparse可以帮助你的工作…..
你在做什么不是一个好的做法:P完全相反:)不管怎么说,不要太费劲,我的意思是我不知道你在做什么,但这听起来像是一个危险的想法。