
Sie können das Betriebssystem und seine Release-Version der Umgebung abrufen, in der Python mit der Standardbibliotheksplattform ausgeführt WIRD.
Je nach Plattform ist es möglich, den Betrieb je nach Betriebssystem und Version umzuschalten.
Dieser Artikel sterben folgende Inhalte:
- Rufen Sie den System-/Betriebssystemnamen ab:
platform.system()
- Holen Sie sich die Release-Version des Systems:
platform.release(), version()
- Holen Sie sich das Betriebssystem, die Version usw. zusammen:
platform.platform()
- Beispiele für jedes Betriebssystem
- Beispielcode, der den Betrieb je nach Betriebssystem umschaltet
Im following Artikel erfahren Sie, wie Sie die Version von Python erhalten.
Der gesamte Beispielcode in der ersten Hälfte wurde auf macOS Mojave 10.14.2 ausgeführt. Beispiele für Ergebnisse unter Windows und Ubuntu werden später gezeigt. OS-spezifische Funktionen werden ebenfalls später beschrieben.
Rufen Sie den System-/Betriebssystemnamen ab:platform.system()
platform.system() gibt den System-/OS-Namen als String zurück.
import platform
print(platform.system())
# Darwin
Holen Sie sich die Release-Version des Systems:platform.release(), version()
platform.release() und platform.version() geben die Release-Version des Systems als String zurück.
Wie im following Beispiel gezeigt, gibt platform.release() einfache 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
Holen Sie sich das Betriebssystem, die Version usw. zusammen:platform.platform()
platform.platform() gibt eine Zeichenfolge zurück, sterben den Namen des Betriebssystems, Versionsinformationen usw. enthält.
print(platform.platform())
# Darwin-18.2.0-x86_64-i386-64bit
Wenn knapp True ist, werden nur minimale Informationen übermittelt.
print(platform.platform(terse=True))
# Darwin-18.2.0
Es gibt auch ein Alias-Argument.
print(platform.platform(aliased=True))
# Darwin-18.2.0-x86_64-i386-64bit
Das Ergebnis ist im obigen Beispiel dasselbe, aber je nach Betriebssystem wird ein Alias als Betriebssystemname zurückgegeben.
If aliased true is, used sterben Funktion Aliase für verschiedene Plattformen, sterben Systemnamen melden, sterben Sich von ihren allgemeinen Namen unterscheiden, z. B. SunOS als Solaris gemeldet wird.
platform.platform() – Zugriff auf die Identifizierungsdaten der zugrunde liegenden Plattform – Dokumentation zu Python 3.9.1
Beispiele für jedes Betriebssystem
Beispiele für Ergebnisse, die unter macOS, Windows und Ubuntu ausgeführt werden, werden unten zusammen mit betriebssystemspezifischen Funktionen gezeigt.
Mac OS
Für 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 der Name des Betriebssystems Darwin ist, nicht macOS oder Mojave. Siehe Wikipedia für die Versionsnummer, die dem Namen in macOS entspricht.
platform.mac_ver() ist eine macOS-spezifische Funktion, die ein Tupel zurückgibt (Release, Versionsinfo, Maschine).
print(platform.mac_ver())
# ('10.14.2', ('', '', ''), 'x86_64')
Windows
Für 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 Ganzzahl ist.
platform.win32_ver() ist eine Windows-spezifische Funktion, die ein Tupel zurückgibt (Release, Version, csd, ptype).
print(platform.win32_ver())
# ('10', '10.0.17763', 'SP0', 'Multiprocessor Free')
platform.win32_edition(), die die Windows-Edition als String zurückgibt, und platform.win32_is_iot(), die True für die IoT-Edition zurückgibt, wurden in Python 3.8 hinzugefügt.
Ubuntu
Für 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
platform.linux_distribution() ist eine Unix-spezifische Funktion, die ein Tupel zurückgibt (distname, version, id).
print(platform.linux_distribution())
# ('Ubuntu', '18.04', 'bionic')
Beachten Sie, dass diese Funktion in Python 3.8 entfernt wurde. Es WIRD empfohlen, stattdessen die Bibliotheksdistribution eines Drittanbieters zu verwenden.
Beispielcode, der den Betrieb je nach Betriebssystem umschaltet
Beispielsweise kann durch die Verwendung von platform.system() die Operation abhängig vom Betriebssystem umgeschaltet werden.
Beispiel für das Abrufen des Erstellungsdatums und der Uhrzeit 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 der Wert von platform.system() used, um zu bestimmen, ob es sich um Windows handelt oder nicht, und dann WIRD die Ausnahmebehandlung used, um die Operation abhängig davon zu wechseln, ob das Attribut st_birthtime vorhanden ist.
Informationen zur Ausnahmebehandlung finden Sie im following Artikel.