私の知る限り、Python には、どのオペレーティング システムが実行されているかを調べる方法が 3 つあります。
os.name
sys.platform
platform.system()
この情報を知っておくと、条件付きインポートや、プラットフォーム間で異なる機能を使用する場合 ( time.clock()
Windowstime.time()
と UNIX など) に役立つことがよくあります。
私の質問は、なぜこれを行うのに3つの異なる方法があるのですか? ある方法を使用し、別の方法を使用しないのはいつですか? 「最良」の方法はどれですか (最も将来性のある方法、またはプログラムを実際に実行できる特定のシステムを誤って除外する可能性が最も低い方法)?
sys.platform
は よりも具体的であるように思われるため、 ( だけではなく) と(だけではなく)os.name
を区別できます。しかし、もしそうなら、との違いはどうですか?win32
cygwin
nt
linux2
darwin
posix
sys.platform
platform.system()
たとえば、どちらが優れているか、これは次のとおりです。
import sys
if sys.platform == 'linux2':
# Do Linux-specific stuff
またはこれ?:
import platform
if platform.system() == 'Linux':
# Do Linux-specific stuff
今のところ、私は に固執するsys.platform
ので、この質問は特に緊急ではありませんが、これに関するいくつかの明確化に非常に感謝しています.