Tôi đang cố gắng ghi vào tệp CSV của mình bằng python Nhưng không hiểu sao tôi lại gặp phải lỗi sau: ValueError: Hoạt động I / O trên tệp đã đóng trong Python. Trong bài viết EZerror này, chúng ta sẽ tìm hiểu về Cách tạo lại lỗi này và chúng ta sẽ thảo luận về Tất cả các giải pháp có thể xảy ra Hãy bắt đầu với bài viết này.

Lỗi ValueError: I / O trên tệp đã đóng trong Python Lỗi xảy ra như thế nào?

Tôi đang cố gắng ghi vào tệp CSV của mình bằng python Nhưng không hiểu sao tôi lại gặp phải lỗi sau.

ValueError: I/O operation on closed file

Vì vậy, ở đây tôi viết tất cả các giải pháp khả thi mà tôi đã cố gắng giải quyết lỗi này.

Cách giải quyết lỗi ValueError: Hoạt động I / O trên tệp đã đóng trong Lỗi Python?

  1. Cách giải quyết lỗi ValueError: Hoạt động I / O trên tệp đã đóng trong Lỗi Python?

    Để giải quyết lỗi ValueError: Thao tác nhập / xuất trên tệp đã đóng trong Lỗi Python Bạn chỉ cần đảm bảo thụt lề của mình đúng. Lỗi này thường xảy ra khi bạn đang cố gắng ghi vào tệp bên ngoài với open (). Vì vậy, hãy chắc chắn rằng chức năng viết của bạn phải có trong với open (). Ví dụ, tôi đang cố gắng viết sinh viên.csv tệp Và trong Mã bên dưới, tôi gặp phải Lỗi ValueError: Thao tác I / O trên lỗi tệp đã đóng Vì tôi đang cố gắng ghi ngay sau khi tệp được đóng. và đó là nguyên nhân gây ra lỗi này. Tệp của bạn chỉ được mở cho đến khi bạn ở trong với open () bên ngoài của với open () tệp của bạn sẽ bị đóng. Và bây giờ, lỗi của bạn sẽ được giải quyết.

  2. ValueError: Hoạt động I / O trên tệp đóng bằng Python

    Để giải quyết lỗi ValueError: Thao tác nhập / xuất trên tệp đã đóng trong Lỗi Python Bạn chỉ cần đảm bảo thụt lề của mình đúng. Lỗi này thường xảy ra khi bạn đang cố gắng ghi vào tệp bên ngoài với open (). Vì vậy, hãy chắc chắn rằng chức năng viết của bạn phải có trong với open (). Ví dụ, tôi đang cố gắng viết sinh viên.csv tệp Và trong Mã bên dưới, tôi gặp phải Lỗi ValueError: Thao tác I / O trên lỗi tệp đã đóng Vì tôi đang cố gắng ghi ngay sau khi tệp được đóng. và đó là nguyên nhân gây ra lỗi này. Tệp của bạn chỉ được mở cho đến khi bạn ở trong với open () bên ngoài của với open () tệp của bạn sẽ bị đóng. Và bây giờ, lỗi của bạn sẽ được giải quyết.

Giải pháp 1

Để giải quyết lỗi ValueError: Thao tác nhập / xuất trên tệp đã đóng trong Lỗi Python Bạn chỉ cần đảm bảo thụt lề của mình đúng. Lỗi này thường xảy ra khi bạn đang cố gắng ghi vào tệp bên ngoài với open (). Vì vậy, hãy chắc chắn rằng chức năng viết của bạn phải có trong với open ().

Ví dụ, tôi đang cố gắng viết sinh viên.csv tệp Và trong Mã bên dưới, tôi gặp phải Lỗi ValueError: Thao tác I / O trên lỗi tệp đã đóng Vì tôi đang cố gắng ghi ngay sau khi tệp được đóng. và đó là nguyên nhân gây ra lỗi này.

import csv    

with open('students.csv', 'w') as studentFile:
    writeFile = csv.DictWriter(csvfile, fieldnames=fieldnames)
    print(studentFile.closed) // false

print(studentFile.closed)  // true
writeFile.writerow({'s_f_name': 'Rohan', 's_l_name': 'Khurana'}) // ValueError: I/O operation on closed file

Tệp của bạn chỉ được mở cho đến khi bạn ở trong với open () bên ngoài của với open () tệp của bạn sẽ bị đóng. Chỉ như thế này.

import csv    

with open('students.csv', 'w') as studentFile:
    writeFile = csv.DictWriter(csvfile, fieldnames=fieldnames)
    print(studentFile.closed) // false

    print(studentFile.closed)  // false
    writeFile.writerow({'s_f_name': 'Rohan', 's_l_name': 'Khurana'}) // Write Successful 

Và bây giờ, lỗi của bạn sẽ được giải quyết.

Giải pháp 2: Ví dụ

Bạn có thể viết trong CSV của mình như thế này.

import csv    

studentCsv = open('students.csv', 'w', encoding='utf-8')

studentCsv.write('student 1' + 'n')
studentCsv.write('student 2' + 'n')
studentCsv.write('student 3' + 'n')

Sự kết luận

Đó là tất cả về lỗi này. Tôi hy vọng chúng tôi đã giải quyết được lỗi của bạn. Bình luận bên dưới Suy nghĩ của bạn và truy vấn của bạn. Ngoài ra, hãy bình luận bên dưới về giải pháp nào phù hợp với bạn.