Tôi đang cố gắng lưu và tải các đối tượng bằng pickle
mô-đun.
Đầu tiên tôi khai báo các đối tượng của mình:
>>> class Fruits:pass
...
>>> banana = Fruits()
>>> banana.color = 'yellow'
>>> banana.value = 30
Sau đó, tôi mở một tệp có tên là 'Fruits.obj' (trước đó tôi đã tạo một tệp .txt mới và tôi đã đổi tên thành 'Fruits.obj'):
>>> import pickle
>>> filehandler = open(b"Fruits.obj","wb")
>>> pickle.dump(banana,filehandler)
Sau khi thực hiện việc này, tôi đóng phiên của mình và bắt đầu một phiên mới và tôi đặt phiên tiếp theo (cố gắng truy cập vào đối tượng mà nó phải được lưu):
file = open("Fruits.obj",'r')
object_file = pickle.load(file)
Nhưng tôi có tin nhắn này:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Python31\lib\pickle.py", line 1365, in load
encoding=encoding, errors=errors).load()
ValueError: read() from the underlying stream did notreturn bytes
Tôi không biết phải làm gì vì tôi không hiểu thông điệp này. Có ai biết Làm cách nào để tải đối tượng 'chuối' của tôi không? Cảm ơn bạn!
CHỈNH SỬA: Như một số bạn đã yêu thích tôi đặt:
>>> import pickle
>>> file = open("Fruits.obj",'rb')
Không có vấn đề gì, nhưng điều tiếp theo tôi đặt là:
>>> object_file = pickle.load(file)
Và tôi có lỗi:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Python31\lib\pickle.py", line 1365, in load
encoding=encoding, errors=errors).load()
EOFError