Python --- Dateioperationen

Inhaltsverzeichnis

Vorwort

1. open()-Funktion

1.Schreibgeschützter Modus r

2. Nur-Schreibmodus w

3.Anhängemodus a

2. Betrieb anderer Dateien

1.Python arbeitet binär

2.Python verwaltet JSON-Dateien

3. Schließen Sie die Datei

4. Kontextmanager

5. Position des Dateizeigers


Vorwort

Bei tatsächlichen Vorgängen müssen wir normalerweise Daten in lokale Dateien schreiben oder Daten aus lokalen Dateien lesen. Als Python-Enthusiasten müssen wir die Verwendung der Python-Sprache zum Betrieb lokaler Dateien beherrschen.

Schritte zum Betrieb lokaler Dateien:

  1. Suchen Sie den Speicherort der Datei
  2. öffne einen Ordner
  3. Operationsdateien
  4. Datei schließen

1. open()-Funktion

Datei: Dateispeicherort (Pfad) öffnen
Modus: Gibt die Berechtigungen zum Betreiben der Datei an (standardmäßige schreibgeschützte Berechtigungen).
Kodierung: Geben Sie die Kodierung utf-8 an, um das Problem verstümmelter chinesischer Zeichen zu lösen

Dateimodus

Modell veranschaulichen Anfangsposition des Zeigers wenn die Datei nicht existiert
R Datei schreibgeschützt öffnen Anfang der Datei Melden Sie einen Fehler
w Öffnen Sie eine Datei zum Schreiben. Hinweis: Dieser Modus wird von Grund auf neu geschrieben und überschreibt vorhandene Inhalte. Anfang der Datei erstellen
A Wie w schreibt es in eine Datei. Der Unterschied besteht darin, dass nicht von Anfang an geschrieben wird, sondern nach der vorhandenen Datei fortgefahren wird. Ende der Datei erstellen
X Wenn die Datei bereits vorhanden ist, wird ein Fehler gemeldet. Wenn die Datei nicht vorhanden ist, wird sie erstellt und dann geschrieben. Dies ist sicherer als der W-Modus. erstellen
B Betreiben Sie Dateien im Byte-Typ, der im Allgemeinen in Kombination mit dem vorherigen Modus verwendet wird
rb Im Grunde dasselbe wie r, außer dass die Datei im Binärformat geöffnet wird Anfang der Datei Melden Sie einen Fehler
wb Im Grunde dasselbe wie w, der Unterschied besteht darin, dass die Datei im Binärformat geöffnet wird Anfang der Datei erstellen
ab Im Grunde dasselbe wie a, der Unterschied besteht darin, dass die Datei im Binärformat geöffnet wird Ende der Datei erstellen

Darüber hinaus entsprechen ihnen jeweils r+, w+, a+, rb+, wb+ und ab+. Der Unterschied besteht darin, dass dies alles lesbare und beschreibbare Vorgänge sind. Bitte probieren Sie es selbst aus, um Einzelheiten zu erfahren.

1.Schreibgeschützter Modus r

Methode beschreiben
f.readable() Stellen Sie fest, ob es lesbar ist
f.read(n)

Lesen Sie alles, n ist ein Zeichen in Python

n kann selbst festlegen, wie viel Inhalt gelesen werden soll. Wenn es nicht festgelegt ist oder auf einen negativen Wert gesetzt ist, wird der gesamte Inhalt gelesen.

f.readline() Zeile für Zeile lesen, einschließlich\n
f.bereitet Alles lesen, der Rückgabewert ist eine Liste, einschließlich\n

data.txt

hello
world
cheng xu yuan

(1)f.readable()

Bestimmen Sie, ob es lesbar ist, und geben Sie einen booleschen Wert zurück

f = open('data.txt', mode='r', encoding='utf-8')
if f.readable():
    print('可读')
else:
    print('不可读')

Operationsergebnis:

(2)f.read(n)

Hier können Sie festlegen, wie viel Inhalt Sie selbst lesen möchten. Wenn es nicht festgelegt ist oder auf einen negativen Wert eingestellt ist, wird der gesamte Inhalt gelesen.

if f.readable():   
    f = open('data.txt', mode='r', encoding='utf-8')
    print(f.read(8))

 Operationsergebnis:

(3)f.readline()

Liest eine Zeile Inhalt aus der Datei. Das Zeilenumbruchzeichen ist „\n“. Durch wiederholte Eingabe dieses Befehls wird mit dem Lesen ab der nächsten Zeile begonnen.

if f.readable():
    f = open('data.txt', mode='r', encoding='utf-8')
    print(f.readline(), end='')
    print(f.readline(), end='')

Operationsergebnis:

Bei sorgfältiger Beobachtung können wir feststellen, dass f.readline() beim einmaligen Drucken nur eine Zeile ausgibt und der Zeiger an den Anfang der nächsten Zeile wechselt. Die letzte Ausgabezeile ist ein Nullzeichen, das anzeigt, dass der Zeiger das Ende der Datei erreicht hat und nicht automatisch zum Anfang zurückkehrt.

Bei jeder Ausgabe einer Inhaltszeile wird automatisch ein \n ausgegeben. Wir können end='' am Ende hinzufügen, was bedeutet, dass die Standardendung „\n“ ist, und wir ändern es in ein Nullzeichen.

(4)f.readlines()

Speichern Sie jede Zeile in der Datei als Element in einer Liste, und der zurückgegebene Wert ist diese Liste. Der gesamte Inhalt der Datei wird auf einmal in die Liste eingelesen. Ein Vorteil besteht darin, dass der Zugriff auf den Inhalt sehr bequem ist.

if f.readable():
    f = open('data.txt', mode='r', encoding='utf-8')
    print(f.readlines())

Operationsergebnis:

Beachten:

  • Im r-Modus wird ein Fehler gemeldet, wenn die Datei nicht vorhanden ist
  • Das Lesen ist irreversibel

2. Nur-Schreibmodus w

Methode beschreiben
f.writable() Bestimmen Sie, ob es beschreibbar ist
f.write(str) Inhalt schreiben, der Rückgabewert ist die Länge der geschriebenen Zeichenfolge
f.writelines(seq) Schreiben Sie mehrere Zeilen, aber Sie müssen selbst Zeilenumbrüche hinzufügen

(1)f.write(str)

Wird verwendet, um Daten vom Typ String oder Byte in eine Datei zu schreiben. Dieser Befehl kann mehrmals wiederholt werden, funktioniert jedoch nur im Computerspeicher. Erst wenn die Datei geschlossen ist (in der with-Anweisung nicht erforderlich), wird sie auf der Festplatte gespeichert.

with open('data.txt',mode='w',encoding='utf-8') as file:
    f = (file.write('很美'))

print(type(f),f,sep='\n')

with open('data.txt',mode='r',encoding='utf-8') as file:
    print(file.read())

 Operationsergebnis:

Beachten:

  • Im W-Modus wird eine Datei erstellt, wenn diese nicht vorhanden ist
  • Beim erneuten Schreiben überschreiben

3.Anhängemodus a

Beachten:

  • Ein Modus erstellt eine Datei, wenn sie nicht vorhanden ist
  • Schreiben Sie erneut als Anhang

4.b

b-Modus

  • Binärmodus: Wird im Allgemeinen zum Lesen von Dateien wie Bildern und Videos verwendet

  • Hinweis: Beim Lesen und Schreiben wird der Bytetyp gelesen und geschrieben, sodass das Ergebnis ein Byteobjekt und keine Zeichenfolge ist. Beim Lesen und Schreiben müssen Sie die Zeichenkodierung angeben.

s='this is a test'
b=bytes(s,encoding='utf-8')
f=open('t2.txt','w')
f.write(s)
f.write(b)

s='this is a test'
b=bytes(s,encoding='utf-8')
f=open('t3.txt','wb')  # wb 用于bytes类型
f.write(b)
f.close()

5.+

  • w+-Modus: Der Dateiinhalt wird vor dem Lesen und Schreiben gelöscht.

  • a+-Modus: Immer am Ende der Datei schreiben

  • r+-Modus: Lese- und Schreibmodus, mit der Methode see() tell() können mehr Operationen ausgeführt werden

2. Betrieb anderer Dateien

1.Python arbeitet binär

Verwenden Sie in Python den wb-Modus, um Binärdaten zu schreiben.

2.Python verwaltet JSON-Dateien

Methode beschreiben
json.loads() Konvertieren Sie JSON in ein Wörterbuch (gilt für Anweisungen)
json.dumps() Konvertieren Sie das Wörterbuch in JSON (gilt für Anweisungen)
json.load() JSON in Wörterbuch konvertieren (gilt für Dateien)
json.dump() Konvertieren Sie das Wörterbuch in JSON (wird in Dateien verwendet)

3. Schließen Sie die Datei

Es ist zu beachten, dass die Datei nach dem Öffnen über die Anweisung f.close() geschlossen werden muss, um Ressourcen freizugeben.

4. Kontextmanager

Das Schlüsselwort with wird im Kontextmanagermechanismus von Python verwendet. Um Ausnahmen oder Fehler im Betriebsprozess von Dateiöffnungsmethoden wie Öffnen oder das Vergessen, die Schließmethode am Ende auszuführen, zu verhindern, wird die Datei abnormal geschlossen usw., was zu Dateilecks und -schäden führen kann. Python bietet den Kontextmanagermechanismus, um sicherzustellen, dass die Datei normal geschlossen wird. Unter seiner Leitung besteht keine Notwendigkeit, eine Abschlusserklärung zu verfassen. Die restlichen Operationen sind die gleichen wie bei open().

f = open('data.txt', 'w')
f.write("cheng xu")
f.close()  # 关闭文件

 Kontextmanager verwenden:

with open('data.txt', 'w') as f:
    f.write("cheng xu")

5. Position des Dateizeigers

Beim Lesen und Schreiben von Dateien haben wir festgestellt, dass der Dateizeiger entsprechend unserer Öffnungsmethode und der Ausführung der Lese- und Schreibbefehle eine feste Position hat. Auf diese Weise können wir ihn nicht nach Belieben verwenden, also müssen wir ihn verwenden Wir können die Position des Zeigers selbst steuern.

Methode beschreiben
f.tell() Speicherort
f.seek(offset,whence)

1.tell()

Gibt die aktuelle Position des Lese-/Schreibzeigers der Datei zurück. Diese Position ist  die Anzahl der Bytes  vom Anfang der Datei , nicht die Anzahl der Zeichen.

with open('data.txt',mode='w',encoding='utf-8') as file:
    file.write('你好')
    print(file.tell())
    file.write('呀')
    print(file.tell())

Operationsergebnis:

Von hier aus können wir auch feststellen, dass chinesische Schriftzeichen drei Bytes belegen.

2.f.seek(offset,whherce)

Wird verwendet, um die Position des Zeigers anzugeben. Es hat zwei Parameter. Lassen Sie uns zuerst den zweiten Parameter einführen. Es hat drei feste Optionen, nämlich 0, 1 und 2.

woher
0 Versatz vom Anfang der Datei
1 Versatz vom aktuellen Standort
2 Offset vom Ende der Datei

Der erste Parameter ist der Offset, also die Anzahl der Bytes, die von der ausgewählten Position verschoben werden müssen. Dies ist leicht zu verstehen. Sehen Sie sich bitte das Beispiel an: (Fügen Sie die Zeichen „men“ in der Mitte von „Hallo“ ein.)

with open('data.txt',mode='r+',encoding='utf-8') as file:
    file.write('你好')
    file.seek(0, 0)
    print(file.read())
    file.seek(3, 0)
    old=file.read()
    file.seek(3, 0)
    file.write('们')
    file.write(old)
    file.seek(0, 0)
    print(file.read())

Operationsergebnis:

 

Supongo que te gusta

Origin blog.csdn.net/m0_63636799/article/details/130169562
Recomendado
Clasificación