Я открываю файл на Python, используя команду, указанную ниже. Затем я копирую объект в w.
import os
os.chdir(r"C:\Users\")
with open(r"abc.040", 'r+') as k:
w = k
for a in w:
print(a)
Но когда я пытаюсь перебрать объект w через цикл for, я получаю ошибку ниже.
Traceback (most recent call last):
File "C:/Users/w.py", line 8, in <module>
for a in w:
ValueError: I/O operation on closed file.
Как скопировать экземпляр файла
Отступы такие же, как здесь?
@ a_python_user Вы правы, но я хочу сделать копию и использовать эту копию. Что-то вроде deepcopy.
@ Sayse да отступы такие же, как я показал здесь
В отличие от некоторых других языков Python создает ссылки с помощью =, а не копий. Таким образом, вы все еще используете тот же объект только под новым именем.
Когда вы открываете файл в блоке with, файл автоматически закрывается при выходе из блока. k (и w, это всего лишь два имени для одного и того же файлового объекта) закрывается при достижении цикла for.
w = k не является копией.
@ juanpa.arrivillaga тогда как скопировать






Используйте readlines
Бывший:
import os
os.chdir(r"C:\Users")
with open(r"abc.040", 'r+') as k:
w = k.readlines()
for a in w:
print(a)
Разве нельзя скопировать объект и использовать его. Что-то вроде deepcopy
содержимое файла копируется на w с использованием «строк чтения» для повторного использования.
Сама ошибка не требует пояснений.