Das Plattformmodul der Standardbibliothek wird verwendet, um Informationen über das Betriebssystem, auf dem Python läuft, und seine Version (Release) zu erhalten. Mit diesem Modul ist es möglich, den Prozess für jedes Betriebssystem und jede Version umzuschalten.
Hier finden Sie die folgenden Informationen.
- Ermittelt den Namen des Betriebssystems:
platform.system()
- Abrufen von Versionsinformationen (Release):
platform.release()
,version()
- Holen Sie sich Betriebssystem und Version auf einmal:
platform.platform()
- Beispiele für Ergebnisse für jedes Betriebssystem
- macOS
- Windows
- Ubuntu
- Beispielcode zum Umschalten der Verarbeitung je nach Betriebssystem
Wenn Sie wissen wollen, welche Version von Python Sie verwenden, lesen Sie den folgenden Artikel.
- Verwandte Artikel:Überprüfung und Anzeige der Python-Version (z.B. sys.version)
Der gesamte Beispielcode in der ersten Hälfte wird unter macOS Mojave 10.14.2 ausgeführt; in der zweiten Hälfte werden Beispielergebnisse unter Windows und Ubuntu gezeigt; betriebssystemspezifische Funktionen werden ebenfalls in der zweiten Hälfte besprochen.
- Den Namen des Betriebssystems ermitteln: platform.system()
- Abrufen von Versionsinformationen: platform.release(), version()
- Betriebssystem und Version auf einmal abrufen: platform.platform()
- Beispiele für Ergebnisse für jedes Betriebssystem
- Beispielcode zum Umschalten der Verarbeitung je nach Betriebssystem
Den Namen des Betriebssystems ermitteln: platform.system()
Der Name des Betriebssystems wird durch platform.system() ermittelt. Der Rückgabewert ist eine Zeichenkette.
import platform
print(platform.system())
# Darwin
Abrufen von Versionsinformationen: platform.release(), version()
Die Informationen über die Betriebssystemversion (Release) werden mit den folgenden Funktionen ermittelt. In beiden Fällen ist der Rückgabewert eine Zeichenkette.
platform.release()
platform.version()
Wie im folgenden Beispiel gezeigt, gibt platform.release() einfachere Inhalte zurück.
print(platform.release())
# 18.2.0
print(platform.version())
# Darwin Kernel Version 18.2.0: Mon Nov 12 20:24:46 PST 2018; root:xnu-4903.231.4~2/RELEASE_X86_64
Betriebssystem und Version auf einmal abrufen: platform.platform()
Der Name des Betriebssystems und die Versionsinformationen (Release) können mit platform.platform() ermittelt werden. Der Rückgabewert ist eine Zeichenkette.
print(platform.platform())
# Darwin-18.2.0-x86_64-i386-64bit
Wenn der Wert des Arguments terse TRUE ist, werden nur minimale Informationen zurückgegeben.
print(platform.platform(terse=True))
# Darwin-18.2.0
Es gibt auch ein Argument aliased.
print(platform.platform(aliased=True))
# Darwin-18.2.0-x86_64-i386-64bit
Das Ergebnis ist dasselbe wie in der Beispielumgebung, aber einige Betriebssysteme geben einen Alias als Betriebssystemnamen zurück.
Wenn aliased true ist, wird das Ergebnis unter Verwendung eines Alias anstelle des allgemeinen Namens des Systems zurückgegeben. Zum Beispiel wird SunOS zu Solaris.
platform.platform() — Access to underlying platform’s identifying data — Python 3.10.0 Documentation
Beispiele für Ergebnisse für jedes Betriebssystem
Es werden Beispiele für Ergebnisse unter macOS, Windows und Ubuntu sowie betriebssystemspezifische Funktionen gezeigt.
macOS
Beispiel für das Ergebnis unter macOS Mojave 10.14.2. Dasselbe wie das oben gezeigte Beispiel.
print(platform.system())
# Darwin
print(platform.release())
# 18.2.0
print(platform.version())
# Darwin Kernel Version 18.2.0: Mon Nov 12 20:24:46 PST 2018; root:xnu-4903.231.4~2/RELEASE_X86_64
print(platform.platform())
# Darwin-18.2.0-x86_64-i386-64bit
Beachten Sie, dass es sich um Darwin handelt, nicht um macOS oder Mojave.
Weitere Informationen über Darwin finden Sie auf der Wikipedia-Seite. Es gibt auch eine Beschreibung der Korrespondenz zwischen der neuesten Versionsnummer und dem Namen in macOS.
Es gibt eine madOS-spezifische Funktion namens platform.mac_ver().
Der Rückgabewert wird in Form eines Tupels (release, versioninfo, machine) zurückgegeben.
In der Beispielumgebung ist versioninfo unbekannt und ein leeres String-Tupel.
print(platform.mac_ver())
# ('10.14.2', ('', '', ''), 'x86_64')
Windows
Beispiel für Ergebnisse unter Windows 10 Home.
print(platform.system())
# Windows
print(platform.release())
# 10
print(platform.version())
# 10.0.17763
print(platform.platform())
# Windows-10-10.0.17763-SP0
Beachten Sie, dass der Rückgabewert 10 von platform.release() ein String und keine ganze Zahl ist.
Es gibt eine Windows-spezifische Funktion namens platform.win32_ver().
Der Rückgabewert wird als Tupel (release, version, csd, ptype) zurückgegeben.
csd zeigt den Status des Service Packs an.
print(platform.win32_ver())
# ('10', '10.0.17763', 'SP0', 'Multiprocessor Free')
Ubuntu
Beispiel für das Ergebnis auf Ubuntu 18.04.1 LTS.
print(platform.system())
# Linux
print(platform.release())
# 4.15.0-42-generic
print(platform.version())
# #45-Ubuntu SMP Thu Nov 15 19:32:57 UTC 2018
print(platform.platform())
# Linux-4.15.0-44-generic-x86_64-with-Ubuntu-18.04-bionic
Es gibt eine Unix-spezifische Funktion platform.linux_distribution().
Der Rückgabewert wird als Tupel (distname, version, id) zurückgegeben.
print(platform.linux_distribution())
# ('Ubuntu', '18.04', 'bionic')
Beachten Sie, dass platform.linux_distribution() in Python 3.8 entfernt worden ist. Es wird empfohlen, stattdessen die Bibliotheksdistribution eines Drittanbieters zu verwenden, die separat mit pip installiert werden muss.
Beispielcode zum Umschalten der Verarbeitung je nach Betriebssystem
Wenn Sie die zu verwendende Funktion oder Methode in Abhängigkeit vom Betriebssystem wechseln wollen, können Sie eine Methode wie platform.system() verwenden, um den Wert zu ermitteln.
Nachfolgend ein Beispiel für die Abfrage des Erstellungsdatums einer Datei.
def creation_date(path_to_file):
"""
Try to get the date that a file was created, falling back to when it was
last modified if that isn't possible.
See http://stackoverflow.com/a/39501288/1709587 for explanation.
"""
if platform.system() == 'Windows':
return os.path.getctime(path_to_file)
else:
stat = os.stat(path_to_file)
try:
return stat.st_birthtime
except AttributeError:
# We're probably on Linux. No easy way to get creation dates here,
# so we'll settle for when its content was last modified.
return stat.st_mtime
In diesem Beispiel wird zunächst der Wert von platform.system() verwendet, um festzustellen, ob es sich um Windows oder ein anderes System handelt.
Dann wird mit Hilfe der Ausnahmebehandlung zwischen dem Fall, in dem das Attribut st_birthtime vorhanden ist, und den anderen Fällen unterschieden.