반응형
ValueError : 닫힌 파일의 I/O 작업
import csv
with open('v.csv', 'w') as csvfile:
cwriter = csv.writer(csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL)
for w, c in p.items():
cwriter.writerow(w + c)
여기서,p
사전입니다.w
그리고.c
둘 다 문자열입니다.
파일에 쓰려고 하면 다음 오류가 보고됩니다.
ValueError: I/O operation on closed file.
올바르게 들여쓰기; 사용자for
문은 블록 내부에 있어야 합니다.
import csv
with open('v.csv', 'w') as csvfile:
cwriter = csv.writer(csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL)
for w, c in p.items():
cwriter.writerow(w + c)
외부with
차단합니다. 파일이 닫혔습니다.
>>> with open('/tmp/1', 'w') as f:
... print(f.closed)
...
False
>>> print(f.closed)
True
탭 + 공백을 함께 사용해도 동일한 오류가 발생할 수 있습니다.
with open('/foo', 'w') as f:
(spaces OR tab) print f <-- success
(spaces AND tab) print f <-- fail
저도 같은 문제를 가지고 있습니다.이전 코드입니다.
csvUsers = open('/content/gdrive/MyDrive/Ada/Users.csv', 'a', newline='', encoding='utf8')
usersWriter = csv.writer(csvUsers)
for t in users:
NodeWriter=.writerow(users)
csvUsers.close()
분명히, 나는 NodeWriter 대신 usersWriter를 써야 합니다.
NodeWriter=.writerow(users)
usersWriter=.writerow(users)
아래는 제 현재 코드이며 작동 중입니다.
csvUsers = open('/content/gdrive/MyDrive/Ada/Users.csv', 'a', newline='', encoding='utf8')
usersWriter = csv.writer(csvUsers)
for t in users:
usersWriter=.writerow(users)
csvUsers.close()
file = open("filename.txt", newline='')
for row in self.data:
print(row)
변수에 데이터 저장(file
), 그래서 당신은 필요합니다.with
.
내부에서 정의되지 않은 변수를 사용할 때 이 문제가 발생했습니다.with open(...) as f:
정의되지 않은 변수를 제거(또는 외부에서 정의)했더니 문제가 사라졌습니다.
또 다른 가능한 원인은 복사 파스타를 한 번 한 후 두 개의 파일을 읽고 아래와 같이 두 개의 파일 핸들에 동일한 이름을 할당하는 경우입니다.중첩됨을 기록합니다.with open
진술.
with open(file1, "a+") as f:
# something...
with open(file2, "a+", f):
# now file2's handle is called f!
# attempting to write to file1
f.write("blah") # error!!
그런 다음 두 개의 파일 핸들에 서로 다른 변수 이름을 할당합니다.f1
그리고.f2
둘 다 대신에f
.
언급URL : https://stackoverflow.com/questions/18952716/valueerror-i-o-operation-on-closed-file
반응형
'programing' 카테고리의 다른 글
UITap 제스처 인식기 - 단일 탭 및 이중 탭 (0) | 2023.07.20 |
---|---|
SQL에서 문자열의 문자를 바꾸는 방법은 무엇입니까? (0) | 2023.07.20 |
ODP.NET을 사용하여 이름별로 쿼리 매개 변수 바인딩 (0) | 2023.07.20 |
v$sql에서 수신한 Oracle 쿼리에서 매개 변수를 찾는 방법은 무엇입니까? (0) | 2023.07.20 |
Python에서 numpy로 자연 로그(예: "ln()")를 수행하는 방법은 무엇입니까? (0) | 2023.07.20 |