Moduł udostępnia możliwości zależne od systemu operacyjnego, czyniąc to w sposób bardziej przenośny, niż w przypadku importowania wbudowanych modułów zależnych od systemu operacyjnego, takich jak posix czy nt.
Moduł poszukuje wbudowanych modułów zależnych od systemu operacyjnego, takich
jak mac czy posix, a następnie eksportuje odnalezione w
nich funkcje i dane. Wszystkie wbudowane moduły Pythona, zależne od systemu
operacyjnego, zaprojektowano w taki sposób, że dowolnie wybrana funkcja, o ile jest
dostępna, wykorzystuje zawsze ten sam interfejs. Na przykład funkcja
os.stat(ścieżka) zwraca informacje na temat pliku o podanej
ścieżce zawsze w tym samym formacie (w tym przypadku opartym o interfejs POSIX).
Moduł os zawiera również rozszerzenia specyficzne dla pewnych systemów operacyjnych, choć korzystanie z nich wiąże się oczywiście z ryzykiem utraty przenośności.
Należy zauważyć, że po pierwszym zaimportowaniu modułu os nie występuje żaden narzut czasowy, który powodowałby mniejszą efektywność wywoływania funkcji udostępnianych przez moduł os zamiast bezpośredniego użycia odpowiedniego modułu wbudowanego zależnego od systemu operacyjnego. Nie istnieje zatem żaden powód, który uzasadniałby nieużywanie modułu os.
Moduł os zawiera wiele funkcji oraz wartości danych. Wszystkie elementy wymienione poniżej, jak i w podsekcjach, dostępne są bezpośrednio w tym module.
W przypadku, gdy wyjątki są klasami, wyjątek przechowuje dwa atrybuty: errno oraz strerror. Pierwszy atrybut zawiera wartość zmiennej errno z biblioteki standardowej języka C, zaś drugi -- odpowiadający jej komunikat opisujący błąd, uzyskany przy użyciu funkcji strerror(). Przy wyjątkach dotyczących operacji na nazwach plików (np. chdir() lub unlink()) instancja wyjątku zawiera również trzeci argument o nazwie filename, będący kopią nazwy pliku przekazanej przy wywołaniu funkcji.
'posix',
'nt', 'mac', 'os2', 'ce',
'java', 'riscos'.
os.path.split(plik)
jest równoważny zapisowi posixpath.split(plik), jednak jest od niego
bardziej przenośny. Moduł ten można również importować bezpośrednio, używając jego
pełnej ścieżki: os.path.