Skip to content

Ermitteln des Betriebssystems und seiner Version, auf dem Python läuft

Python

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.