Sejauh yang saya tahu, Python memiliki 3 cara untuk mengetahui sistem operasi apa yang sedang berjalan:
os.namesys.platformplatform.system()
Mengetahui informasi ini sering kali berguna dalam impor bersyarat, atau menggunakan fungsionalitas yang berbeda antar platform (misalnya time.clock()di Windows vs time.time()di UNIX).
Pertanyaan saya adalah, mengapa 3 cara berbeda untuk melakukan ini? Kapan satu cara harus digunakan dan bukan yang lain? Cara manakah yang 'terbaik' (paling tahan masa depan atau paling tidak mungkin secara tidak sengaja mengecualikan sistem tertentu tempat program Anda sebenarnya dapat berjalan)?
Sepertinya sys.platformlebih spesifik daripada os.name, memungkinkan Anda untuk membedakan win32dari cygwin(sebagai lawan dari hanya nt), dan linux2dari darwin(sebagai lawan dari hanya posix). Tetapi jika demikian, bagaimana dengan perbedaan antara sys.platformdan platform.system()?
Misalnya, mana yang lebih baik, ini:
import sys
if sys.platform == 'linux2':
# Do Linux-specific stuff
atau ini? :
import platform
if platform.system() == 'Linux':
# Do Linux-specific stuff
Untuk saat ini saya akan bertahan sys.platform, jadi pertanyaan ini tidak terlalu mendesak, tetapi saya akan sangat berterima kasih atas beberapa klarifikasi mengenai hal ini.
sys.platform.startswith('linux')alih-alihsys.platform == 'linux2'untuk kompatibilitas di masa mendatang