Python sys-Modul
sysist ein Modul in der Python-Standardbibliothek, das Funktionen für die Interaktion mit dem Python-Interpreter und seiner Umgebung bereitstellt.
Durchsysder Bibliothek können Sie auf Variablen und Funktionen zugreifen, die mit dem Python-Interpreter zusammenhängen, wie Kommandozeilenargumente, Standardeingabe/-ausgabe, Programmbeendigung usw.
sys-Bibliothek importieren
Umsysdie Bibliothek, müssen Sie sie zuerst importieren. Die Importmethode ist wie folgt:
import sys
Beispiel
# Alle Attribute und Methoden des os-Moduls auflisten
print(dir(os))
Gängige Funktionen der sys-Bibliothek
1. Kommandozeilenargumente
sys.argvist eine Liste, die Kommandozeilenargumente enthält.sys.argv[0]ist der Skriptname, und die nachfolgenden Elemente sind Argumente, die an das Skript übergeben werden.
Beispielcode:
Beispiel
print("Skriptname:", sys.argv[0])
print("Argumentliste:", sys.argv[1:])
So führen Sie aus:
python script.py arg1 arg2
Ausgabe:
脚本名称: script.py 参数列表: ['arg1', 'arg2']
2. Beenden des Programms
sys.exit()Wird verwendet, um das Programm zu beenden. Sie können eine Ganzzahl als Exit-Statuscode übergeben; normalerweise0zeigt Erfolg an, während Werte ungleich null Fehler anzeigen.
Beispielcode:
Beispiel
print("Programmstart")
sys.exit(0)
print("Diese Codezeile wird nicht ausgeführt")
3. Standardeingabe/-ausgabe
sys.stdin、sys.stdoutundsys.stderrstehen für Standardeingabe, Standardausgabe bzw. Standardfehler-Streams. Sie können diese Streams umleiten, um das Eingabe-/Ausgabeverhalten anzupassen.
Beispielcode:
Beispiel
# Standardausgabe in eine Datei umleiten
with open('output.txt', 'w') as f:
sys.stdout = f
print("Diese Zeile wird in output.txt geschrieben")
# Standardausgabe wiederherstellen
sys.stdout = sys.__stdout__
print("Diese Zeile wird in der Konsole angezeigt")
4. Python-Versionsinformationen
sys.versionundsys.version_infoliefert Versionsinformationen des aktuellen Python-Interpreters.
Beispielcode:
Beispiel
print("Python-Version:", sys.version)
print("Versionsinfo:", sys.version_info)
Ausgabe:
<code>Python 版本: 3.9.7 (default, Aug 31 2021, 13:28:12) [GCC 7.5.0] 版本信息: sys.version_info(major=3, minor=9, micro=7, releaselevel='final', serial=0) </code>
5. Modulsuchpfad
sys.pathist eine Liste, die die Pfade enthält, die der Python-Interpreter beim Importieren von Modulen durchsucht. Sie können diese Liste ändern, um benutzerdefinierte Modulsuchpfade hinzuzufügen.
Beispielcode:
Beispiel
print("Modulsuchpfad:", sys.path)
sys.path.append('/custom/path')
print("Aktualisierter Modulsuchpfad:", sys.path)
Gängige Attribute des sys-Moduls
| Attribute | Beschreibung |
|---|---|
sys.argv | Befehlszeilenargumentliste,sys.argv[0]ist der Skriptname |
sys.path | Python-Modulsuchpfad (PYTHONPATH) |
sys.modules | Wörterbuch der geladenen Module |
sys.platform | Bezeichner der Betriebssystemplattform (z. B.,'win32', 'linux', 'darwin') |
sys.version | Versionsinformationen des Python-Interpreters |
sys.executable | Absoluter Pfad des Python-Interpreters |
sys.stdin | Standard-Eingabestream (Dateiobjekt) |
sys.stdout | Standard-Ausgabestream (Dateiobjekt) |
sys.stderr | Standard-Fehlerstream (Dateiobjekt) |
sys.byteorder | Byte-Reihenfolge ('little'oder'big') |
sys.maxsize | Maximaler Ganzzahlwert (2**31-1oder2**63-1) |
Häufige Methoden des sys-Moduls
| Methode | Beschreibung |
|---|---|
sys.exit([status]) | Programm beenden,status=0zeigt normales Beenden an |
sys.getsizeof(obj) | gibt die vom Objekt belegte Speichergröße in Bytes zurück |
sys.getdefaultencoding() | Standard-Zeichenkettenkodierung abrufen (normalerweise'utf-8') |
sys.setrecursionlimit(limit) | Rekursionstiefenlimit festlegen (Standard1000) |
sys.getrecursionlimit() | aktuelles Rekursionstiefenlimit abrufen |
sys.getrefcount(obj) | gibt die Referenzanzahl des Objekts zurück |
sys.exc_info() | aktuelle Ausnahmeinformationen abrufen ((type, value, traceback)) |
sys.settrace(tracefunc) | Debug-Tracing-Funktion festlegen |
sys.setprofile(profilefunc) | Profiling-Funktion festlegen |