Chcę sprawdzić system operacyjny (na komputerze, na którym działa skrypt).
Wiem, że mogę używać os.system('uname -o')
w Linuksie, ale wyświetla mi się komunikat w konsoli i chcę pisać do zmiennej.
Będzie dobrze, jeśli skrypt może stwierdzić, czy jest to Mac, Windows czy Linux. Jak mogę to sprawdzić?
python
linux
operating-system
kolek
źródło
źródło
Odpowiedzi:
Możesz użyć
sys.platform
:sys.platform
ma drobniejszą ziarnistość niżsys.name
.Prawidłowe wartości można znaleźć w dokumentacji .
Zobacz także odpowiedź na pytanie „Na jakim systemie operacyjnym korzystam?”
źródło
"cygwin"
nie"win32"
tak, jak ktoś mógłby się spodziewać."linux2"
nie jest już możliwą wartościąplatform
(zobacz powiązane dokumenty w celu potwierdzenia), więc jeśli potrzebujesz tylko obsługi Pythona 3.3 i nowszych, możesz bezpiecznie usunąć klauzulę `lub platform ==" linux2 "` z pierwszy warunek.Jeśli chcesz wiedzieć, na której platformie jesteś poza „Linux”, „Windows” lub „Darwin” (Mac), bez większej precyzji, użyj:
platform.system
Wykorzystujeuname
wewnętrznie.źródło
Linux
,Windows
,Java
lub pusty ciąg. devdocs.io/python~3.7/library/platform#platform.systemMożesz uzyskać dość zgrubne wyobrażenie o używanym systemie operacyjnym, sprawdzając
sys.platform
.Gdy już masz te informacje, możesz ich użyć, aby określić, czy dzwonienie do czegoś takiego
os.uname()
jest odpowiednie w celu zebrania bardziej szczegółowych informacji. Możesz także użyć czegoś takiego jak Python System Information w systemach operacyjnych typu unix lub pywin32 dla Windows.Jest też psutil, jeśli chcesz przeprowadzić bardziej dogłębną kontrolę, nie dbając o system operacyjny.
źródło
Bardziej szczegółowe informacje dostępne są w
platform
module .źródło
platform
moduł ma jakąś przewagę nadsys.platform
? Kiedy chciałbym zastosować które podejście?platform
. Wystarczy kliknąć łącze do dokumentacji.Możesz użyć
sys.platform
.źródło