Heim > Backend-Entwicklung > Python-Tutorial > Detaillierte Erläuterung der Python-Ausnahme und des Dateiverarbeitungsmechanismus

Detaillierte Erläuterung der Python-Ausnahme und des Dateiverarbeitungsmechanismus

WBOY
Freigeben: 2016-08-04 08:55:38
Original
1477 Leute haben es durchsucht

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'

Nach dem Login kopieren

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

Nach dem Login kopieren

Entspricht

. 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

Nach dem Login kopieren

Beim Aufruf einer nicht vorhandenen Methode wird eine AttributeError-Ausnahme ausgelöst.

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"

Nach dem Login kopieren

Hinweis im Code oben:

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.

Beim Importieren eines Moduls wird eine ImportError-Ausnahme ausgelöst.

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]])
Nach dem Login kopieren

hat 3 Parameter (die letzten beiden sind optional). Sie repräsentieren den Dateinamen, die Öffnungsmethode und den Pufferparameter

>>> f = open("/music/_singles/kairo.mp3", "rb")

Nach dem Login kopieren
Der zweite Parameter wird als „rb“ angegeben. Dies bedeutet, dass die Datei im binären Lesemodus geöffnet wird. Wenn dieser Parameter standardmäßig eingestellt ist, bedeutet dies, dass sie im Textmodus geöffnet wird.

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'

Nach dem Login kopieren
Nachdem Sie die Datei geöffnet haben, können Sie beispielsweise lesen und schreiben:

>>> f.tell()

Nach dem Login kopieren
Nach dem Login kopieren
Aktuellen Standort abfragen.

0
>>> f.seek(0, 2)

Nach dem Login kopieren
Positionieren Sie den Dateizeiger. Der zweite Parameter kann drei Werte annehmen: 1. 2. Sie repräsentieren den Anfang, die aktuelle Position und das Ende

Wenn die gefundene Adresse falsch ist (z. B. außerhalb des Bereichs), wird eine IOError-Ausnahme ausgelöst.

Diese Anweisung positioniert also den Dateizeiger am Ende der Datei.

Dadurch wird die Länge der Datei gedruckt.
>>> f.tell()

Nach dem Login kopieren
Nach dem Login kopieren

Lesen Sie die letzten 128 Bytes der Datei und geben Sie die gelesenen Daten als Zeichenfolge zurück. Beim Lesen der Daten wird auch der Dateizeiger rückwärts bewegt.
>>> f.seek(-128, 2)
>>> data = f.read(128)

Nach dem Login kopieren

Der Parameter „read“ gibt die maximale Anzahl der zu lesenden Bytes an. Dieser Parameter kann auch weggelassen werden. Er bedeutet, dass bis zum Ende der Datei gelesen wird.

Wenn beim Lesen ein Fehler auftritt (z. B. fehlerhafte Sektoren auf der Festplatte oder eine Verbindung zum Netzwerk), wird eine IOError-Ausnahme ausgelöst

Überprüfen Sie, ob die Datei geschlossen ist.
>>> f.closed

Nach dem Login kopieren

Dateien sollten geschlossen werden, wenn sie nicht mehr verwendet werden. Eine bereits geschlossene Datei kann wieder geschlossen werden (es tritt keine Ausnahme ein).
False
>>> f.close()

Nach dem Login kopieren

Wenn Sie nach dem Schließen search() und andere Vorgänge für f ausführen, wird eine ValueError-Ausnahme ausgelöst.
>>> f.closed
True

Nach dem Login kopieren
Die Methode zum Schreiben einer Datei ähnelt dem Lesen. Allerdings muss die Datei zum „Schreiben“ geöffnet werden


Wobei „w“ zum Schreiben geöffnet bedeutet, wird die Datei auch dann erstellt, wenn sie existiert.
>>> f1 = open('test.log', 'w')

Nach dem Login kopieren

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()

Nach dem Login kopieren
'abc'

3 for-Schleife

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:

Nach dem Login kopieren
... drucke i

...

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:


Verwenden Sie for zum Durchlaufen des Wörterbuchs wie folgt:
>>> for i in range(len(li)) : print li[i]
...
1
2
3

Nach dem Login kopieren

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

Nach dem Login kopieren

4 Verwenden Sie sys.modules

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 Verzeichnis

Es 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("~")

Nach dem Login kopieren

expanduser函数用'~'作参数时. 返回当前用户根目录.
'c:\Documents and Settings\mpilgrim\My Documents'

>>> (filepath, filename) = os.path.split("c:\music\a.mp3")

Nach dem Login kopieren

split函数用来将一个路径名分成目录名和文件名. 它返回的是一个tuple. 用返回的tuple对(filepath, filename)赋值.

>>> filepath
'c:\music'
>>> filename
'a.mp3'
>>> (a, b) = os.path.splitext("a.mp3")

Nach dem Login kopieren

类似的. 这个splitext用来将一个全文件名分成 文件名 和 扩展名 两部分.

>>> a
'a'
>>> b
'.mp3'

Nach dem Login kopieren

列出目录用:

>>> os.listdir("c:\")

Nach dem Login kopieren

这个函数将返回一个字符串list. 包括所有的文件和文件夹的名字.

['boot.ini', 'CONFIG.SYS', 'AUTOEXEC.BAT', 'java', 等]

Nach dem Login kopieren

要判断一个字符串路径到底是一个文件还是一个文件夹. 用os.path模块中的 isfile() 或 isdir(). 如:

>>> [f for f in os.listdir("c:") if os.path.isdir(os.path.join("c:", f))]

Nach dem Login kopieren

这样就打印出c中所有文件夹名构成的list.

如果要在目录操作中使用通配符. 可以如下:

>>> import glob

Nach dem Login kopieren

要先导入 glob 模块

>>> glob.glob('c:\music\*.mp3')

Nach dem Login kopieren

则返回的list中包含了该目录下所有的 .mp3 后缀的文件名.

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python文件与目录操作技巧汇总》、《Python图片操作技巧总结》、《Python数据结构与算法教程》、《Python Socket编程技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python编码操作技巧总结》及《Python入门与进阶经典教程》

希望本文所述对大家Python程序设计有所帮助。

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage