Wie überprüfe ich das Betriebssystem in Python?

Lesezeit: 3 Minuten

Benutzer-Avatar
kolek

Ich möchte das Betriebssystem überprüfen (auf dem Computer, auf dem das Skript ausgeführt wird).

Ich weiß, dass ich es gebrauchen kann os.system('uname -o') in Linux, aber es gibt mir eine Meldung in der Konsole, und ich möchte in eine Variable schreiben.

Es ist in Ordnung, wenn das Skript erkennen kann, ob es sich um Mac, Windows oder Linux handelt. Wie kann ich es überprüfen?

  • mögliches Duplikat von Wie kann ich anhand von Python feststellen, auf welchem ​​Betriebssystem ich laufe?

    – BoltClock

    22. November 2011 um 9:52 Uhr

  • Mögliches Duplikat von Python: Auf welchem ​​Betriebssystem laufe ich?

    – TylerH

    24. Februar 2019 um 16:43 Uhr

Benutzer-Avatar
der Wolf

Sie können verwenden sys.platform:

from sys import platform
if platform == "linux" or platform == "linux2":
    # linux
elif platform == "darwin":
    # OS X
elif platform == "win32":
    # Windows...

sys.platform hat eine feinere Körnung als sys.name.

Die gültigen Werte finden Sie unter die Dokumentation.

Siehe auch die Antwort auf „Welches Betriebssystem verwende ich?“

  • Beachten Sie, dass es in Cygwin zurückkehrt "cygwin" nicht "win32" wie jemand erwarten könnte.

    – Michal Bentkowski

    22. November 2011 um 11:03 Uhr

  • Vielen Dank. Was ist der Unterschied zwischen Linux und Linux2?

    – Tharindu Rusira

    5. September 2013 um 2:03 Uhr

  • Was wäre die Ausgabe für BSD?

    – Galois

    28. März 2015 um 9:00 Uhr

  • Beachten Sie, dass seit Python 3.3 "linux2" ist kein möglicher Wert mehr von platform (Siehe die verlinkten Dokumente zur Bestätigung) Wenn Sie also nur Python 3.3 und höher unterstützen müssen, können Sie die Klausel ` or platform == “linux2″` aus der ersten Bedingung sicher löschen.

    – Mark Amery

    3. Januar 2020 um 18:28 Uhr


  • @ohailolcat , für Abwärtskompatibilität. Es wird sich wohl nie ändern. Weitere Informationen finden Sie im ursprünglichen Patch, der dies so definiert hat: mail.python.org/pipermail/patches/2000-May/000648.html

    – Cowlinator

    11. Februar 2021 um 21:51 Uhr


Benutzer-Avatar
Laurent LAPORTE

Wenn Sie wissen möchten, auf welcher Plattform Sie sich auf “Linux”, “Windows” oder “Darwin” (Mac) befinden, ohne nähere Angaben zu machen, sollten Sie Folgendes verwenden:

>>> import platform
>>> platform.system()
'Linux'  # or 'Windows"https://stackoverflow.com/"Darwin'

Das platform.system Funktion verwendet uname im Inneren.

  • Ich mag diese Lösung, aber ich möchte darauf hinweisen, dass aus den Dokumenten hervorgeht, dass sie zurückkehren wird Linux, Windows, Java oder eine leere Zeichenfolge.devdocs.io/python~3.7/library/platform#platform.system

    – Brandon Benefield

    5. September 2018 um 4:18 Uhr

  • @BrandonBenefield, die Aufzählung ist ein Beispiel für mögliche Werte. Auf Apple-Geräten wird „Darwin“ zurückgegeben.

    – Laurent LAPORTE

    5. September 2018 um 4:30 Uhr

Benutzer-Avatar
Nick Bastin

Sie können eine ziemlich grobe Vorstellung von dem Betriebssystem bekommen, das Sie verwenden, indem Sie dies überprüfen sys.platform.

Sobald Sie diese Informationen haben, können Sie sie verwenden, um festzustellen, ob Sie so etwas anrufen os.uname() geeignet ist, genauere Informationen zu sammeln. Du könntest auch so etwas verwenden Python-Systeminformationen auf Unix-ähnlichen Betriebssystemen oder pywin32 für Windows.

Es gibt auch psutil wenn Sie eine eingehendere Inspektion durchführen möchten, ohne sich um das Betriebssystem kümmern zu wollen.

Nähere Informationen finden Sie in der platform Modul.

Sie können verwenden sys.platform.

1055480cookie-checkWie überprüfe ich das Betriebssystem in Python?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy