Die Beispiele in diesem Artikel beschreiben Python-Ausnahmen und Dateiverarbeitungsmechanismen. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:
1 Ausnahmebehandlung
Ausnahmeverwendung in Python
versuche es
außer
endlich
zu handhaben. Und außer kann auch von else gefolgt werden.
Um eine Ausnahme auszulösen, verwenden Sie raise
Wenn die ausgelöste Ausnahme nicht behandelt wird, werden einige rote Informationen in der Python-IDE angezeigt. Wenn das echte Python-Programm ausgeführt wird, wird das Programm beendet
Wir haben schon mehrere Auffälligkeiten gesehen:
Wenn der verwendete Schlüssel nicht im Wörterbuch vorhanden ist, wird eine KeyError-Ausnahme ausgelöst. Beispiel:
>>> d = {"a":1, "b":"abc"} >>> d["c"] Traceback (most recent call last): File "<interactive input>", line 1, in <module> KeyError: 'c'
Suchen Sie nach einem Wert, der nicht in der Liste vorhanden ist. Es wird eine ValueError-Ausnahme ausgelöst. Beispiel:
>>> li = [1,2] >>> li.index(3) Traceback (most recent call last): File "<interactive input>", line 1, in <module> ValueError: list.index(x): x not in list
. Wenn Sie einen Index verwenden, um auf ein Element in der Liste zu verweisen, wird eine IndexError-Ausnahme generiert
>>> li[2] Traceback (most recent call last): File "<interactive input>", line 1, in <module> IndexError: list index out of range
Referenziert eine Variable, die nicht existiert.
Das Mischen von Datentypen ohne Zwang löst eine TypeError-Ausnahme aus.
IO-Fehler, der durch einen Dateioperationsfehler verursacht wird, wie zum Beispiel:
try: fsock = open("/notthere") except IOError: print "The file dose not exits..." else: print "open the file." print "this line will always print"
open ist eine integrierte Funktion, die zum Öffnen einer Datei verwendet wird und ein Dateiobjekt zurückgibt.
Auf try außer kann eine else-Anweisung folgen. Wenn die angegebene Ausnahme nicht abgefangen wird, wird die else-Anweisung ausgeführt.
Sie können auch Ihre eigene Ausnahmeklasse definieren. Lassen Sie sie beim Definieren die integrierte Ausnahmeklasse erben. Verwenden Sie dann „raise“, um eine Ausnahme auszulösen, wenn Sie sie auslösen müssen.
2 Arbeiten mit Dateiobjekten
Wie bereits erwähnt, kann open verwendet werden, um eine Datei zu öffnen und ein Dateiobjekt zurückzugeben. Die Funktionsdeklaration lautet wie folgt:
open(name[, mode[, buffering]])
>>> f = open("/music/_singles/kairo.mp3", "rb")
Wenn es nicht geöffnet werden kann, löst das Öffnen eine IOError-Ausnahme aus.
Sie können jetzt Dateiobjekte anhand ihres Namensattributs und Modusattributs abfragen, zum Beispiel:
>>> f.name '/music/_singles/kairo.mp3' >>> f.mode 'rb'
>>> f.tell()
0 >>> f.seek(0, 2)
Diese Anweisung positioniert also den Dateizeiger am Ende der Datei.
>>> f.tell()
>>> f.seek(-128, 2) >>> data = f.read(128)
Wenn beim Lesen ein Fehler auftritt (z. B. fehlerhafte Sektoren auf der Festplatte oder eine Verbindung zum Netzwerk), wird eine IOError-Ausnahme ausgelöst
>>> f.closed
False >>> f.close()
>>> f.closed True
>>> f1 = open('test.log', 'w')
Das Öffnen einer Datei mit file() ist dasselbe wie das Öffnen mit open(). Drucken Sie also:
>>> f1.write('abc') >>> f1.close() >>> file('test.log').read()
In Python wird for zum Durchlaufen einer Liste verwendet. Zum Beispiel:
Dadurch kann ich die Werte der Elemente in li der Reihe nach in der Schleife empfangen.
>>> li = [1, 2, 3] >>> for i in li:
1
2
3
Diese Ausgabe ist dieselbe wie print „n“.joni(li).
Wenn Sie for zum Zählen wie in anderen Sprachen verwenden möchten, können Sie die folgende Methode verwenden:
>>> for i in range(len(li)) : print li[i] ... 1 2 3
Das obige Druckergebnis ist das gleiche wie print "n".join(["%d = %s" % (k, v) for k, v in d.items()]).
>>> d = {1:"abc", 2:"def"} >>> for k, v in d.items() : print "%d = %s" % (k, v) ... 1 = abc 2 = def
In Python ist module ein globales Wörterbuchobjekt, das im sys-Modul definiert ist. Sobald wir ein Modul importiert haben, finden Sie es in sys.modules.
Jede Klasse verfügt über ein integriertes „Klassenattribut“: __module__. Sein Wert ist der Name des Moduls, das die Klasse definiert.
5 Arbeiten mit VerzeichnisEs gibt mehrere Funktionen zum Bearbeiten von Dateien und Verzeichnissen in dem Modul, auf das os.path verweist. Zum Beispiel:
这个join函数用来将一个或多个字符串构造成一个路径名.
'c:\music\mahadeva.mp3' >>> os.path.expanduser("~")
expanduser函数用'~'作参数时. 返回当前用户根目录.
'c:\Documents and Settings\mpilgrim\My Documents'
>>> (filepath, filename) = os.path.split("c:\music\a.mp3")
split函数用来将一个路径名分成目录名和文件名. 它返回的是一个tuple. 用返回的tuple对(filepath, filename)赋值.
>>> filepath 'c:\music' >>> filename 'a.mp3' >>> (a, b) = os.path.splitext("a.mp3")
类似的. 这个splitext用来将一个全文件名分成 文件名 和 扩展名 两部分.
>>> a 'a' >>> b '.mp3'
列出目录用:
>>> os.listdir("c:\")
这个函数将返回一个字符串list. 包括所有的文件和文件夹的名字.
['boot.ini', 'CONFIG.SYS', 'AUTOEXEC.BAT', 'java', 等]
要判断一个字符串路径到底是一个文件还是一个文件夹. 用os.path模块中的 isfile() 或 isdir(). 如:
>>> [f for f in os.listdir("c:") if os.path.isdir(os.path.join("c:", f))]
这样就打印出c中所有文件夹名构成的list.
如果要在目录操作中使用通配符. 可以如下:
>>> import glob
要先导入 glob 模块
>>> glob.glob('c:\music\*.mp3')
则返回的list中包含了该目录下所有的 .mp3 后缀的文件名.
更多关于Python相关内容感兴趣的读者可查看本站专题:《Python文件与目录操作技巧汇总》、《Python图片操作技巧总结》、《Python数据结构与算法教程》、《Python Socket编程技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python编码操作技巧总结》及《Python入门与进阶经典教程》
希望本文所述对大家Python程序设计有所帮助。