web-dev-qa-db-fra.com

Message d'erreur Python io.UnsupportedOperation: illisible

J'ai créé un programme simple mais il affiche l'erreur suivante lorsque je l'exécute:

line1 = []
line1.append("xyz ")
line1.append("abc")
line1.append("mno")

file = open("File.txt","w")
for i in range(3):
    file.write(line1[i])
    file.write("\n")

for line in file:
    print(line)
file.close()

Il affiche ce message d'erreur:

Fichier "C:/Utilisateurs/Sachin Patil/quart, py.py", ligne 18, dans 
pour ligne dans le fichier:

UnsupportedOperation: illisible

14
Sachin Patil

Vous ouvrez le fichier sous la forme w, qui signifie writable.

En utilisant w, vous ne pourrez pas lire le fichier. Utilisez les éléments suivants à la place:

file = open("File.txt","r")

De plus, voici les autres options:

"r" Opens a file for reading only.
"r+" Opens a file for both reading and writing.
"rb" Opens a file for reading only in binary format.
"rb+" Opens a file for both reading and writing in binary format.
"w" Opens a file for writing only.
41
TheDarkKnight

Il y a peu de modes pour ouvrir un fichier (lecture, écriture etc.)

Si vous voulez lire à partir d'un fichier, vous devez taper file = open("File.txt","r"), si vous écrivez que file = open("File.txt","w"). Vous devez donner la bonne permission concernant votre utilisation.

plusieurs modes:

  • r. Ouvre un fichier en lecture uniquement. 
  • rb. Ouvre un fichier en lecture uniquement au format binaire.
  • r + Ouvre un fichier en lecture et en écriture. 
  • rb + Ouvre un fichier pour la lecture et l'écriture au format binaire.
  • w. Ouvre un fichier en écriture uniquement. 
  • vous pouvez trouver plus de modes dans ici
4
omri_saadon

Si vous voulez ouvrir un fichier à la fois en lecture et en écriture, je vous suggère d'utiliser a+.

a + Ouvre un fichier pour l'ajout et la lecture. Le pointeur de fichier est à la fin du fichier s'il existe. Le fichier s'ouvre dans l'annexe mode. Si le fichier n'existe pas, il crée un nouveau fichier à lire et l'écriture. - Modes de fichier Python

with open('"File.txt', 'a+') as file:
    print(file.readlines())
    file.write("test")

Note: l'ouverture du fichier dans un bloc with permet de s'assurer que le fichier est correctement fermé à la fin du bloc, même si une exception est levée en chemin. C'est équivalent à try-finally, mais beaucoup plus court.

1
Sapnesh Naik