Наскільки я знаю, у Python є 3 способи з'ясувати, на якій операційній системі працює:
os.namesys.platformplatform.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'майбутньої сумісності