Was muss ich beachten, um festzustellen, ob ich unter Windows oder Unix usw. arbeite?
Dies ist problematisch, wenn Sie einen Mac verwenden, da platform.system() auf einem Mac "Darwin" zurückgibt und "Darwin".lower().find("win") = 3.
Was muss ich beachten, um festzustellen, ob ich unter Windows oder Unix usw. arbeite?
Diese Lösung funktioniert sowohl für python
y jython
.
Modul os_identify.py :
import platform
import os
# This module contains functions to determine the basic type of
# OS we are running on.
# Contrary to the functions in the `os` and `platform` modules,
# these allow to identify the actual basic OS,
# no matter whether running on the `python` or `jython` interpreter.
def is_linux():
try:
platform.linux_distribution()
return True
except:
return False
def is_windows():
try:
platform.win32_ver()
return True
except:
return False
def is_mac():
try:
platform.mac_ver()
return True
except:
return False
def name():
if is_linux():
return "Linux"
elif is_windows():
return "Windows"
elif is_mac():
return "Mac"
else:
return "<unknown>"
So verwenden:
import os_identify
print "My OS: " + os_identify.name()
Wie wäre es mit einer einfachen Enum-Implementierung wie der folgenden? Keine Notwendigkeit für externe Bibliotheken!
import platform
from enum import Enum
class OS(Enum):
def checkPlatform(osName):
return osName.lower()== platform.system().lower()
MAC = checkPlatform("darwin")
LINUX = checkPlatform("linux")
WINDOWS = checkPlatform("windows") #I haven't test this one
Sie können einfach mit Enum-Wert zugreifen
if OS.LINUX.value:
print("Cool it is Linux")
P.S Es ist python3
Sie können sich den Code in pyOSinfo
die Teil des pip-date Paket, um die wichtigsten Betriebssysteminformationen aus Ihrer Python-Distribution zu erhalten.
Einer der häufigsten Gründe, warum Menschen ihr Betriebssystem überprüfen wollen, ist die Kompatibilität von Terminals und die Verfügbarkeit bestimmter Systembefehle. Leider hängt der Erfolg dieser Überprüfung ein wenig von Ihrer Python-Installation und Ihrem Betriebssystem ab. Zum Beispiel, uname
ist in den meisten Windows-Python-Paketen nicht verfügbar. Das obige Python-Programm zeigt Ihnen die Ausgabe der am häufigsten verwendeten eingebauten Funktionen, die bereits von os, sys, platform, site
.
Der beste Weg, um nur den wesentlichen Code zu erhalten, ist also ein Blick auf dass als ein Beispiel. (Ich hätte es auch einfach hier einfügen können, aber das wäre nicht politisch korrekt gewesen.)
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.
4 Stimmen
Siehe ( bugs.python.org/issue12326 ) für Details!
7 Stimmen
Hier ist eine verwandte Frage: Name der Linux-Distribution prüfen .