Heim  >  Artikel  >  Backend-Entwicklung  >  Python verwendet häufig Standardbibliotheken und Bibliotheken von Drittanbietern im 2-SYS-Modul

Python verwendet häufig Standardbibliotheken und Bibliotheken von Drittanbietern im 2-SYS-Modul

王林
王林nach vorne
2023-04-10 14:56:261788Durchsuche

1. Einführung in das SYS-Modul

Das zuvor vorgestellte OS-Modul ist hauptsächlich für das Betriebssystem gedacht, während das SYS-Modul in diesem Artikel hauptsächlich für den Python-Interpreter ist.

Das sys-Modul ist ein Modul, das mit Python geliefert wird. Es ist eine Schnittstelle für die Interaktion mit dem Python-Interpreter. Das sys-Modul bietet viele Funktionen und Variablen für den Umgang mit verschiedenen Teilen der Python-Laufzeitumgebung.

2. Allgemeine Methoden des sys-Moduls

Sie können mithilfe der dir()-Methode überprüfen, welche Methoden im sys-Modul enthalten sind:

import sys

print(dir(sys))

Python verwendet häufig Standardbibliotheken und Bibliotheken von Drittanbietern im 2-SYS-Modul

1.sys.argv – Befehlszeilenparameter abrufen

sys.argv wird verwendet, um Parameter von außerhalb des Programms zu übergeben Zum Programm kann es die Liste der Befehlszeilenparameter abrufen. Die argv-Liste enthält alle an das Skript übergebenen Parameter:

  • sys.argv[0]: repräsentiert das Programm selbst
  • sys.argv[1]: repräsentiert das Programm Der erste Parameter
  • sys.argv[2]: stellt den zweiten Parameter des Programms dar
import sys

for index, arg in enumerate(sys.argv):
print(index, arg)

Führen Sie diese Skriptdatei in der Python-Befehlszeile aus ( (nicht mit irgendwelchen Parametern) ist das erste erhaltene Element das Skript selbst. Das Druckergebnis ist:

Python verwendet häufig Standardbibliotheken und Bibliotheken von Drittanbietern im 2-SYS-Modul

Führen Sie diese Skriptdatei (mit Parametern) in der Python-Befehlszeile aus und rufen Sie die Datei ab Ein Element ist das Skript selbst, der Rest sind übergebene Argumente. Das gedruckte Ergebnis ist:

Python verwendet häufig Standardbibliotheken und Bibliotheken von Drittanbietern im 2-SYS-Modul

2.sys.exit(n)-Exit-Programm

#🎜 🎜 #sys.exit() Grundprinzip

sys.exit(n):

    Wenn n 0 ist: normal beenden
  • #🎜🎜 #Wenn n nicht gleich 0 ist, führt ein abnormaler Exit zu einer SystemExit-Ausnahme
  • Unter normalen Umständen wird der Interpreter automatisch beendet, wenn das Programm bis zum Ende ausgeführt wird. Zu diesem Zeitpunkt wird sys.exit(0) nicht im Code aufgerufen, aber der eigentliche Python-Interpreter ruft sys.exit(0) zur Laufzeit auf. Nach der Ausführung meldet der PyCharm-Editor automatisch „Prozess mit Exit-Code 0 beendet“. wie folgt: # 🎜🎜#

Python verwendet häufig Standardbibliotheken und Bibliotheken von Drittanbietern im 2-SYS-ModulWenn sys.exit(888) im Code aufgerufen wird, ist eine Ganzzahl ungleich 0 übergeben. Nach der Ausführung meldet der PyCharm-Editor die Meldung „Prozess mit Exit-Code 888 abgeschlossen“ wie folgt:

#🎜🎜 #Und wenn Nach dem Aufruf von sys.exit(n) im Code bedeutet dies, dass das Programm beendet wird. Unabhängig davon, ob n gleich 0 ist, dh ob es normal oder abnormal beendet wird, werden die nachfolgenden Anweisungen nicht ausgeführt. Das heißt, „print(“ wird nicht ausgeführt. Python sys.exit() Verwendungsbeispiel „)“ Satz. Aus der folgenden Abbildung ist auch ersichtlich, dass die Anweisung nach sys.exit(888) im PyCharm-Editor gelb hervorgehoben wurde (bei normaler Grammatik wird sie nicht gelb angezeigt) und das laufende Ergebnis nicht ausgeführt wird sys Die Anweisung nach .exit(888): Python verwendet häufig Standardbibliotheken und Bibliotheken von Drittanbietern im 2-SYS-Modul

sys.exit() Anwendbares Szenario – das Steuerprogramm wird beendet midway# 🎜🎜#Python verwendet häufig Standardbibliotheken und Bibliotheken von Drittanbietern im 2-SYS-ModulUnter normalen Umständen wird der Interpreter automatisch beendet, wenn die Ausführung das Ende des Hauptprogramms erreicht. Das obige Beispiel hat uns mitgeteilt, dass es nicht funktioniert, wenn Sie auf halbem Weg beenden möchten, zuerst sys.exit() und dann andere Anweisungen aufzurufen, und der Editor wird Sie warnen.

Wenn Sie frei steuern möchten, ob das Programm auf halbem Weg beendet wird, können Sie die Methode „sys.exit(n)+catchException“ verwenden. Unter diesen kann n ein ganzzahliger Parameter oder ein Zeichenfolgenparameter sein. Wenn n ein Wert ungleich 0 ist, wird eine SystemExit-Ausnahme ausgelöst, die im Hauptprogramm erfasst werden kann:

# sys.exit()用法示例
def exit_function(value):
print("sys.exit()捕获到的value是%s" % value)
sys.exit(0)


print("start sys")

try:
sys.exit(888)
except SystemExit as value:
exit_function(value=value)

print("end sys")
#🎜🎜 #① Beispiel des Programms, das mittendrin beendet wird

Die Ausführungsergebnisse sind wie folgt:

Analyse des Ausführungsprozesses :

Python verwendet häufig Standardbibliotheken und Bibliotheken von Drittanbietern im 2-SYS-ModulDas Programm führt zuerst print("start sys")

Führt dann die try-Anweisung aus und ruft sys.exit(888) auf

# 🎜🎜 #Erfassen Sie dann die Systemausnahme. Der Wert der erfassten SystemExit-Ausnahme ist 888 Funktion „exit_function“, Führe die Anweisung aus, drucke den erfassten Wert und rufe schließlich sys.exit(0) auf, um das Programm zu beenden

  1. ② Beispiel dafür, dass das Programm nicht mittendrin beendet wird
  2. 上个示例的执行结果可以看到在exit_function函数中调用sys.exit(0),此时程序就会退出,不会再执行print("end sys"),而当在exit_function函数中注释掉sys.exit(0),则会继续执行最后的代码print("end sys"),即:程序中途不退出,如下所示:

    Python verwendet häufig Standardbibliotheken und Bibliotheken von Drittanbietern im 2-SYS-Modul

    3.sys.platform-获取当前Python运行平台

    基本用法

    print(sys.platform)

    Windows下运行:

    Python verwendet häufig Standardbibliotheken und Bibliotheken von Drittanbietern im 2-SYS-Modul

    Linux下运行:

    Python verwendet häufig Standardbibliotheken und Bibliotheken von Drittanbietern im 2-SYS-Modul

    除了sys.platform外,通过platform.system()也可以获取到当前系统平台:

    Windows下运行:

    Python verwendet häufig Standardbibliotheken und Bibliotheken von Drittanbietern im 2-SYS-Modul

    Linux下运行:

    Python verwendet häufig Standardbibliotheken und Bibliotheken von Drittanbietern im 2-SYS-Modul

    适用场景

    我们都知道Python是跨平台语言,只要操作系统安装了Python环境,那么同一份Python代码就可以既运行在Linux上,也可以运行在Windows上,亦或是Mac上。

    而使用sys.platform或platform.system()获取到当前系统平台名称后,我们就可以针对性地作出不同操作,例如:

    linux_content = "111111"
    windows_content = "222222"
    
    # 平台为Linux,执行逻辑1、发送文本1到指定邮件
    if platform.system() == "Linux":
    send_email(linux_content)
    # 平台为Windows,执行逻辑2、发送文本2到指定邮件
    elif platform.system() == "Windows":
    send_email(windows_content)

    4.sys.path-返回Python相关路径

    基本用法

    sys.path是Python的搜索模块的路径集,供Python从中查找模块,返回一个list。

    print(sys.path)

    Python verwendet häufig Standardbibliotheken und Bibliotheken von Drittanbietern im 2-SYS-Modul

    适用场景

    如果是在IDE中执行Python程序,编译器会自动把当前项目的根目录加入到包查找路径中,可以理解为添加到环境变量下,所以直接执行是没有问题的。但是在cmd或是Terminal控制台中直接使用Python相关命令来执行程序,则不会自动将当前项目加入到PYTHONPATH环境变量下,如果涉及到import其他文件夹下的变量就会报类似"ModuleNotFoundError: No module named 'xxxx'"这样的错误。

    解决方法:通过sys.path.append()方法将当前项目的根目录添加到系统环境变量中:

    import sys
    
    root_path = os.path.dirname(os.path.realpath(__file__))
    sys.path.append(root_path)

    5.sys.stdin与sys.stdout

  • Stdin:标准输入
  • Stdout:标准输出
  • Stderr:错误流

sys.stdin 与 input()

在Python中, input() 等价于 sys.stdin.readline()

① 先来看看使用input()的实现效果

# sys.stdin 与 input
number = input("please input a number:")
print("your input number is %s" % (number))

执行效果如下:

Python verwendet häufig Standardbibliotheken und Bibliotheken von Drittanbietern im 2-SYS-Modul

② 再来看看使用sys.stdin.readline()的实现效果

print("please input a number:",)# 逗号表示不换行
nn = sys.stdin.readline()
print("your input number is %s" % (nn))

执行效果如下:

Python verwendet häufig Standardbibliotheken und Bibliotheken von Drittanbietern im 2-SYS-Modul

sys.stdout 与 print()

在Python中, print() 等价于 sys.stdout.readline()

① 先来看看使用print()的实现效果

# sys.stdout 与 print
print("hello world")

执行效果如下:

Python verwendet häufig Standardbibliotheken und Bibliotheken von Drittanbietern im 2-SYS-Modul

② 再来看看使用sys.stdin.write()的实现效果

sys.stdout.write("hello world")

执行效果如下:

Python verwendet häufig Standardbibliotheken und Bibliotheken von Drittanbietern im 2-SYS-Modul

所以综上所述,input()+print() 结合的代码语句即可使用sys.stdin.readline()+sys.stdin.write()代替,如下:

sys.stdout.write("please input a number: n")
number = sys.stdin.readline()
sys.stdout.write("your input number is %s" % number)

执行效果如下:

Python verwendet häufig Standardbibliotheken und Bibliotheken von Drittanbietern im 2-SYS-Modul

Andere Verwendungen des 6.sys-Moduls

  • sys.version: Holen Sie sich die Python-Interpreterversion
  • sys.exc_info(): Gibt das Ausnahmeinformationstriplett zurück
  • sys.getdefaultencoding(): Rufen Sie die aktuelle Codierung des Systems ab Standard ist utf -8
  • sys.setdefaultencoding(): Setzt die Standardkodierung des Systems
  • sys.getfilesystemencoding(): Ruft die vom Dateisystem verwendete Kodierung ab, der Standard ist utf-8
  • sys.modules: Rückgabe alle aktuellen Python-Umgebungen in Form eines Wörterbuchs Module, die importiert wurden
  • sys.copyright: Die aktuellen Copyright-Informationen von Python
  • sys.getrefcount(object): Gibt die Anzahl der Referenzen auf das Objekt zurück
  • sys.getrecursionlimit( ): Gibt die maximale Rekursionstiefe von Python zurück, der Standardwert ist 1000
  • sys. getsizeof(object[, default]): Gibt die Größe des Objekts zurück
  • sys.getwindowsversion(): Gibt die Versionsinformationen des aktuellen Fenstersystems zurück

Zusammenfassung

Das sys-Modul ist ein Modul, das mit Python geliefert wird und hauptsächlich mit dem Python-Interpreter Interaction verwendet wird. Es verfügt über viele Methoden oder Attribute, darunter:

1.sys.argv wird zum Übertragen von Parametern von außerhalb des Programms an das Programm verwendet und kann die Befehlszeilenparameterliste abrufen. Die argv-Liste enthält alle an das Skript übergebenen Parameter:

  • sys.argv[0]: stellt das Programm selbst dar
  • sys.argv[1]: stellt den ersten Parameter des Programms dar
  • sys.argv[2]: stellt dar: Der zweite Parameter des Programms

2.sys.exit(n) dient zum Beenden des Programms:

  • Wenn n 0 ist: normales Beenden
  • Wenn n nicht gleich 0 ist, löst ein abnormales Beenden eine SystemExit-Ausnahme aus

sys.exit(n) wird häufig zusammen mit der Erfassung von SystemExit-Ausnahmen verwendet, um zu steuern, ob das Programm auf halbem Weg frei beendet wird.

3.sys.platform wird verwendet, um die aktuelle Python-Laufplattform abzurufen, ähnlich wie platform.system(); , wird häufig verwendet, um unterschiedliche Betriebslogiken für verschiedene Betriebssysteme zu erstellen.

4.sys.path ist der Pfadsatz des Python-Suchmoduls. Das Stammverzeichnis des aktuellen Projekts wird dem System über sys.path.append() hinzugefügt. Methode. Umgebungsvariablen können verwendet werden, um Fehler zu beheben, wenn Module nicht gefunden werden können.

5 In Python entspricht input() sys.stdout.readline(. ).

Das obige ist der detaillierte Inhalt vonPython verwendet häufig Standardbibliotheken und Bibliotheken von Drittanbietern im 2-SYS-Modul. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:51cto.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen