Bildiğim kadarıyla, Python'un hangi işletim sistemi üzerinde çalıştığını bulmanın 3 yolu vardır:
os.namesys.platformplatform.system()
Bu bilgilerin bilinmesi, koşullu içe aktarmalarda veya platformlar arasında farklılık gösteren işlevselliklerde (örneğin time.clock(), Windows ve time.time()UNIX'te) yararlıdır .
Sorum şu, neden bunu yapmanın 3 farklı yolu var? Ne zaman bir yol kullanılmalı, diğeri değil? Hangi yol 'en iyi' (geleceğe dönük en iyisi veya programınızın gerçekten çalışabileceği belirli bir sistemi yanlışlıkla dışlama olasılığı en düşük)?
Öyle görünüyor ki sys.platformdaha spesifiktir os.namesen ayırt sağlayan win32den cygwin(sadece karşıt olarak nt) ve linux2gelen darwin(sadece karşıt olarak posix). Ama eğer öyleyse, sys.platformve arasındaki fark ne olacak platform.system()?
Örneğin, hangisi daha iyi, bu:
import sys
if sys.platform == 'linux2':
# Do Linux-specific stuff
veya bu? :
import platform
if platform.system() == 'Linux':
# Do Linux-specific stuff
Şimdilik sadık kalacağım sys.platform, bu yüzden bu soru özellikle acil değil, ancak bununla ilgili bazı açıklamalar için çok minnettar olurum.
sys.platform.startswith('linux')yerine kullanınsys.platform == 'linux2'