私の知る限り、Pythonには、どのオペレーティングシステムが実行されているかを確認する3つの方法があります。
os.name
sys.platform
platform.system()
この情報を知ることは、条件付きインポート、またはプラットフォーム間で異なる機能(time.clock()
Windows time.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
ので、この質問は特に緊急ではありませんが、これについての明確化に感謝します。
sys.platform.startswith('linux')
のsys.platform == 'linux2'
ためにの代わりに使用