Используйте platform.system(). Он возвращает Windows, Linux или Darwin (для OS X).
Долгая история
Есть три способа получить ОС на Python, у каждого из которых есть свои плюсы и минусы:
Метод 1
>>> import sys >>> sys.platform 'win32'# could be 'linux', 'linux2, 'darwin', 'freebsd8' etc
Как это работает (исходный код): Внутренне он вызывает API ОС, чтобы получить имя ОС, определенное ОС. Смотрите Здесь различные значения для конкретной ОС.
Pro: Никакой магии, низкий уровень.
Недостатки: зависит от версии ОС, поэтому лучше не использовать напрямую.
Метод 2
>>> import os >>> os.name 'nt'# for Linux and Mac it prints 'posix'
Как это работает (исходный код): Внутренне он проверяет, есть ли в Python модули, зависящие от ОС, называемые posix или nt.
>>> import platform >>> platform.system() 'Windows'# For Linux it prints 'Linux'. For Mac, it prints `'Darwin'
Как это работает (исходный код): Внутренне он в конечном итоге вызовет внутренние API ОС, получит имя, зависящее от версии ОС, например 'win32', или 'win16', или 'linux1', а затем нормализуется до более общих имен, таких как 'Windows', или 'Linux', или 'Darwin', применив несколько эвристик.
Pro: лучший переносимый способ для Windows, OS X и Linux.
Против: разработчики Python должны поддерживать эвристику нормализации в актуальном состоянии.
Краткие сведения
Если вы хотите проверить, является ли ОС Windows, Linux или OS X, то наиболее надежным способом является platform.system().
Если вы хотите выполнять вызовы для конкретной ОС, но через встроенные модули Python posix или nt, тогда используйте os.name.
Если вы хотите получить исходное имя ОС, указанное самой ОС, то используйте sys.platform.