Python 3. Tôi đang sử dụng tiện ích hộp thoại tệp của QT để lưu các tệp PDF được tải xuống từ internet. Tôi đã đọc các tập tin bằng cách sử dụng 'mở', và cố gắng để viết nó bằng cách sử dụng tiện ích hộp thoại tập tin. Tuy nhiên, tôi đã chạy vào một lỗi "TypeError: '_io.BufferedReader' không hỗ trợ giao diện bộ đệm" lỗi.Python viết các tệp nhị phân, byte
Ví dụ mã:
with open('file_to_read.pdf', 'rb') as f1:
with open('file_to_save.pdf', 'wb') as f2:
f2.write(f1)
Logic này hoạt động đúng với các tập tin văn bản khi không sử dụng 'b' vấn thiết kế, hoặc khi đọc một tập tin từ trang web, giống như với urllib hoặc yêu cầu. Đây là những loại 'byte', mà tôi nghĩ rằng tôi cần phải được mở tập tin như. Thay vào đó, nó mở ra như một Buffered Reader. Tôi đã thử byte (f1), nhưng nhận được "TypeError: 'byte' đối tượng không thể được hiểu là một số nguyên." Bất kỳ ý tưởng nào?
Chỉ cần thử - 'data = list (f1.read())' và 'f2.write (dữ liệu)' – karthikr
'list' rõ ràng không hỗ trợ giao diện bộ đệm. –