Last modified: June 11, 2024

This article is written in: 🇵🇱

Informacje o systemie operacyjnym

Moduł os w bibliotece standardowej Pythona dostarcza zestaw funkcji umożliwiających interakcję z systemem operacyjnym. Dzięki temu możemy uzyskiwać informacje o bieżącym środowisku oraz manipulować strukturą katalogów i plikami.

Ustalanie rodzaju systemu operacyjnego

Aby poznać podstawową nazwę systemu operacyjnego, na którym działa nasz kod, można użyć zmiennej os.name:

import os
print(os.name)

Wartość os.name może przyjmować takie wartości jak 'posix', 'nt', 'java' itd., w zależności od używanego systemu.

Jednakże, jeśli chcemy uzyskać bardziej szczegółowe informacje, takie jak dystrybucja, wersja systemu itp., lepszym wyborem jest moduł platform:

import platform

print(platform.system())    # np. 'Linux', 'Windows' lub 'Darwin' (dla MacOS)
print(platform.release())   # wersja systemu
print(platform.version())   # szczegółowa wersja systemu
print(platform.machine())   # architektura sprzętowa

Manipulacja systemem plików

Moduł os oferuje również funkcje do pracy z systemem plików:

Dzięki tym funkcjom można łatwo manipulować strukturą katalogów i plikami w systemie operacyjnym.

Informacje o użytkownikach

Aby uzyskać informacje o użytkownikach systemu oraz grupach, możemy skorzystać z modułu pwd (uwaga: moduł ten dostępny jest tylko na systemach Unix).

import os
import pwd

# Pobierz informacje o bieżącym użytkowniku
user_info = pwd.getpwuid(os.getuid())
print(f"Nazwa użytkownika: {user_info.pw_name}")
print(f"ID użytkownika: {user_info.pw_uid}")
print(f"ID grupy: {user_info.pw_gid}")
print(f"Katalog domowy: {user_info.pw_dir}")

# Pobierz informacje o głównej grupie użytkownika
group_info = pwd.getgrgid(user_info.pw_gid)
print(f"Nazwa grupy: {group_info.gr_name}")
print(f"ID grupy: {group_info.gr_gid}")
print(f"Lista użytkowników w grupie: {', '.join(group_info.gr_mem)}")

Informacje o dyskach

Aby uzyskać informacje o dostępnych dyskach oraz wolnym miejscu na nich, możemy skorzystać z modułu os i jego metody statvfs:

import os

# Pobierz informacje o głównym dysku
disk_info = os.statvfs("/")
print(f"Całkowita pojemność dysku: {disk_info.f_frsize * disk_info.f_blocks:,} bajtów")
print(f"Wolne miejsce na dysku: {disk_info.f_frsize * disk_info.f_bfree:,} bajtów")

Informacje o procesorze

Moduł os z biblioteki standardowej Pythona zawiera funkcję cpu_count(), która zwraca liczbę rdzeni procesora. Aby uzyskać bardziej szczegółowe informacje o mocy obliczeniowej procesora, możemy skorzystać z modułu psutil. Poniższy kod przedstawia, jak wyświetlić liczbę rdzeni oraz maksymalną częstotliwość procesora:

import os
import psutil

# Liczba rdzeni procesora
print(f"Liczba rdzeni procesora: {os.cpu_count()}")

# Częstotliwość procesora
cpu_freq = psutil.cpu_freq()
print(f"Maksymalna częstotliwość procesora: {cpu_freq.max} MHz")

Warto zaznaczyć, że moduł psutil nie jest częścią biblioteki standardowej Pythona i może wymagać dodatkowej instalacji (np. za pomocą pip install psutil).

Zmienne środowiskowe

Moduł os pozwala na dostęp do zmiennych środowiskowych przez atrybut environ. Jest to słownik, w którym kluczem jest nazwa zmiennej środowiskowej, a wartością jej treść. Aby odczytać wartość konkretnej zmiennej środowiskowej, można skorzystać z notacji słownikowej. Poniżej przedstawiono sposób odczytania wartości zmiennej środowiskowej SHELL:

import os

# Odczyt wartości zmiennej środowiskowej SHELL
print(f"Zmienna środowiskowa SHELL: {os.environ.get('SHELL')}")

Uwaga: Metoda get pozwala na bezpieczne odczytanie wartości klucza ze słownika, nawet jeśli klucz nie istnieje. Dzięki temu unikamy błędów w przypadku braku klucza.

Aby modyfikować zmienne środowiskowe, można używać os.environ jak zwykłego słownika Pythona. Poniżej przedstawiono sposób ustawienia wartości zmiennej środowiskowej VAR:

import os

os.environ['VAR'] = 'value'

Warto jednak pamiętać, że zmiany dokonane w os.environ wpływają tylko na zmienne środowiskowe w obrębie bieżącego procesu. Po zakończeniu działania skryptu, zmiany nie są przechowywane dla innych procesów ani sesji. Aby zachować zmiany zmiennych środowiskowych na stałe, trzeba je zapisać w odpowiednich plikach konfiguracyjnych systemu. W przypadku systemów Linux, mogą to być pliki jak /etc/environment czy skrypty startowe powłoki, np. ~/.bashrc czy /etc/bash.bashrc.

Spis Treści

    Informacje o systemie operacyjnym
    1. Ustalanie rodzaju systemu operacyjnego
    2. Manipulacja systemem plików
    3. Informacje o użytkownikach
    4. Informacje o dyskach
    5. Informacje o procesorze
    6. Zmienne środowiskowe