在回答特定问题时,我在尝试解释Python文档时偶然发现了
参考os.uname中 os.unsetenv(varname)和os — Miscellaneous operating system interfaces的文档,我想知道如何解释
可用性:最新的 Unix版本。
可用性:大多数版本的Unix,Windows。
如何确定最近和大多数的含义。我如何知道我的Python脚本是否应该在我定位的特定系统上正常工作。我应该总是依赖事实
try
<do something>
except <some-failure>:
<fallback>
例如
try
import os
_uname = os.uname()
except AttributeError:
import platform
_uname = platform.uname()
即使我知道我正在定位的Unix Flavor和Version?
答案 0 :(得分:2)
是的,您应该始终使用try-except
表单,因为它可以在“不安全”版本的任何位置工作,也可能在不适用的地方使用。
但是,对于这个特定的Python函数,您可以使用一些特定于域的知识来推断它的工作原理。 os.uname
基于具有相同名称的系统调用。从man 2 uname
开始,我们将可用性视为“SVr4,POSIX.1-2001”,这意味着它将基于2001版POSIX标准或更高版本(或来自SVr4的版本)在任何Linux发行版上提供。 )。也就是说,实际上,您将在个人计算机上遇到的每个Linux发行版。