Интересно, сможем ли мы найти разработчиков Python, чтобы это подтвердить? Может быть, даже тот, кто разработал модуль платформы.
лько я знаю, у Python есть 3 способа узнать, на какой операционной системе выполняется:
os.name
sys.platform
platform.system()
Знание этой информации часто полезно при условном импорте или при использовании функций, которые различаются между платформами (например,time.clock()
на Windows v.s.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
Так что этот вопрос не особенно актуален, но я был бы очень признателен за разъяснения по этому поводу.