Pendant que j'essayais d'imprimer le contenu du fichier ligne par ligne en python, je ne peux pas rembobiner le fichier ouvert par f.seek (0) pour imprimer le contenu si le fichier a été ouvert par avec open (« nom_fichier ») comme f: mais, je peux le faire si j'utilise open (« nom_fichier ») comme f: puis f .Seek (0)Comment le fichier ouvert ne peut pas être rembobiné par seek (0) après avoir utilisé avec open() en python
Après mon code
with open("130.txt", "r") as f: #f is a FILE object
print (f.read()) #so f has method: read(), and f.read() will contain the newline each time
f.seek(0) #This will Error!
with open("130.txt", "r") as f: #Have to open it again, and I'm aware the indentation should change
for line in f:
print (line, end="")
f = open("130.txt", "r")
f.seek(0)
for line in f:
print(line, end="")
f.seek(0) #This time OK!
for line in f:
print(line, end="")
Je suis un débutant python, quelqu'un peut-il me dire pourquoi?
Merci! Est-ce que le premier objet FILE ** f ** disparaît ou non? Avec * type (f) * j'ai: * * qui semble toujours exister. Difficile de passer à Python. –
Yifangt
'f' existe toujours et référencera l'encapsuleur autour du handle de fichier, mais le handle qu'il encapsulera aura été fermé, donc lors d'appels ultérieurs, ils échoueront. Je souhaite que 'f' soit étendu au bloc' with', mais Python est plutôt lâche avec ce genre de chose. – ryachza
Je vois, le gestionnaire est toujours là, mais le contenu qu'il a enveloppé a été fermé. Problème effacé! Merci beaucoup! – Yifangt