IO.UnsupportedOperation: Nicht beschreibbarer Fehler in Python

Manav Narula 21 Juni 2023
  1. Beheben Sie den Fehler io.UnsupportedOperation: not beschreibbar in Python
  2. Abschluss
IO.UnsupportedOperation: Nicht beschreibbarer Fehler in Python

Python ist sehr effizient beim Lesen und Schreiben von Daten aus Dateien. Es hat eine Vielzahl von Funktionen, die bei der Dateiverwaltung helfen.

Die Grundlagen des Umgangs mit Dateien umfassen das Öffnen einer Datei mit der Funktion open() und das Lesen oder Schreiben von Daten basierend auf dem Dateimodus.

Das open() öffnet eine gegebene Datei und erstellt ein Dateiobjekt, das verwendet werden kann, um Lese- und Schreiboperationen an einer Datei durchzuführen.

Die Datei kann in verschiedenen Modi geöffnet werden. Standardmäßig wird die Datei im Lesemodus geöffnet.

In diesem Tutorial werden der Fehler io.UnsupportedOperation: not beschreibbar in Python und Möglichkeiten zur Behebung erläutert.

Beheben Sie den Fehler io.UnsupportedOperation: not beschreibbar in Python

Dieser Fehler wird verursacht, wenn wir versuchen, den Vorgang Schreiben für eine im Lesemodus geöffnete Datei durchzuführen. Eine im Lesemodus geöffnete Datei kann nur den Inhalt lesen.

Zum Beispiel:

with open("sample.txt", "r") as f:
    f.write("Text")

Ausgang:

io.UnsupportedOperation: not writable

Beachten Sie, dass wir im obigen Beispiel die Datei im Modus r (Lesen) öffnen und versuchen, einige Daten in diese Datei zu schreiben, indem wir die Funktion write() verwenden, was den Fehler verursacht.

Denken Sie daran, die Datei in Modi zu öffnen, die diesen Vorgang unterstützen, um dieses Problem zu lösen. Die Schreib- (w) oder Anhänge- (a) Modi werden verwendet, um einige Daten in eine Datei zu schreiben.

Der vorherige Inhalt wird abgeschnitten, wenn wir die Datei im w-Modus öffnen. Der a-Modus fügt Inhalte am Ende der Datei hinzu und behält die vorherigen Daten bei.

Zum Beispiel:

with open("sample.txt", "w") as f:
    f.write("Text")

Im obigen Beispiel vermeiden wir erfolgreich Fehler und können Daten in die Datei schreiben.

Wenn wir gleichzeitig Daten aus einer Datei lesen und schreiben wollen, können wir den r+b-Modus verwenden. Wir können Lese- und Schreibvorgänge im Binärmodus ausführen, wenn die Datei in diesem Modus geöffnet wird.

Zum Beispiel:

with open("sample.txt", "r+b") as f:
    f.write(bytes("Text", "utf-8"))

Beachten Sie, dass wir Daten als Bytes schreiben, da die Datei im Binärmodus geöffnet wird. Der Text wird im obigen Beispiel als Bytes in der Kodierung utf-8 kodiert.

Alternativ können wir auch mit der Funktion writable() prüfen, ob wir mit dem Dateihandle Schreiboperationen durchführen können oder nicht. Es gibt True oder False zurück.

Siehe Code unten.

with open("sample.txt", "r") as f:
    print(f.writable())

with open("sample.txt", "a") as f:
    print(f.writable())

Ausgang:

False
True

Das obige Beispiel zeigt, dass die writable-Funktion False zurückgibt, wenn die Datei im r-Modus geöffnet wird, und True zurückgibt, wenn die Datei im a-Modus geöffnet wird.

Abschluss

Abschließend haben wir die Ursache für den Fehler io.UnsupportedOperation: not beschreibbar besprochen und wie man ihn behebt. Wir haben besprochen, wie das Öffnen der Datei im falschen Modus dies verursachen kann und welche Dateimodi Schreibvorgänge unterstützen.

Wir haben auch die Verwendung der Funktion writable demonstriert, mit der überprüft werden kann, ob ein Dateiobjekt Schreiboperationen ausführen kann oder nicht.

Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

Verwandter Artikel - Python Error