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