我正在Android设备上的termux环境中运行python脚本,我希望能够检测到操作系统是Android
传统方法不起作用:
>>> import platform
>>> import system
>>> print(platform.system())
'Linux'
>>> print(sys.platform)
'linux'
>>> print(platform.release())
'4.14.117-perf+'
>>> print(platform.platform())
'Linux-4.14.117-perf+-aarch64-with-libc'
还有哪些其他ootb选项可用
一个明显有用的选项是platform.machine()
,它返回armv8
-这不仅仅是“Linux”,它只是架构,而不是操作系统,它可能返回假阳性,例如在raspberry pi或其他基于arm的系统上
有一种更简单的方法,它不依赖于使用外部实用程序,只使用操作系统模块。 以下是代码:
在Termux和Pydroid 3上返回
True
,但尚未在其他环境中测试这种方法在理论上有缺陷: 由于此方法使用os模块提供的环境列表,如果有人更改它,或者即使是ANDROID平台,它的键中也不包含ANDROID单词,那么它将返回
False
编辑:Python 3.7+选项/变体
除了版本限制/可用性和任何其他实现中可能未实现之外,此选项没有任何缺陷
我试过了,但没有成功。因此我建议使用subprocess,因为
uname -o
返回b'Android\n'
以下是Android的一个简单检查:
相关问题 更多 >
编程相关推荐