Я получаю сообщение об ошибке: «UnsupportedOperation: read» - PullRequest
0 голосов
/ 14 июля 2020
import pickle

#writing into the file

f = open("essay1.txt","ab+")

list1 = ["Aditya","Arvind","Kunal","Naman","Samantha"]

list2 = ["17","23","12","14","34"]

zipfile = zip(list1,list2)

print(zipfile)

pickle.dump(zipfile,f)

f.close()

#opening the file to read it 

f = open("essay1","ab")

zipfile = pickle.load(f)

f.close()

и вывод был:

runfile('E:/Aditya Singh/Aditya Singh/untitled3.py', wdir='E:/Aditya Singh/Aditya Singh')
<zip object at 0x0000000008293BC8>
Traceback (most recent call last):

  File "E:\Aditya Singh\Aditya Singh\untitled3.py", line 21, in <module>
    zipfile = pickle.load(f)

UnsupportedOperation: read

Ответы [ 3 ]

0 голосов
/ 14 июля 2020

В вашем коде есть две проблемы:

  • Вы открываете файл для записи, а не для чтения.
  • Вы используете разные имена файлов для чтения и для записи .

Вот работающая версия:

import pickle

#writing into the file
f = open("essay1.txt","wb")
list1 = ["Aditya","Arvind","Kunal","Naman","Samantha"]
list2 = ["17","23","12","14","34"]
zipfile = zip(list1,list2)
print(zipfile)
pickle.dump(zipfile,f)
f.close()

#opening the file to read it 

f = open("essay1.txt","rb")
zipfile = pickle.load(f)
print(zipfile)
f.close()
0 голосов
/ 14 июля 2020

Вы забыли расширение файла .txt в строке, где вы пытались открыть файл, а также вы открыли его в режиме добавления , поэтому возвращаемый объект не имеет read или readline методы (требуется pickle.load). Я также предлагаю использовать ключевое слово with вместо закрытия файла вручную.

import pickle

#writing into the file

with open("essay1.txt","ab+") as f:
    list1 = ["Aditya","Arvind","Kunal","Naman","Samantha"]
    list2 = ["17","23","12","14","34"]
    zipfile = zip(list1,list2)
    print(zipfile)
    pickle.dump(zipfile,f)

#opening the file to read it
with open("essay1.txt", "rb") as f:
    zipfile = pickle.load(f)

for item in zipfile:
    print(item)

Вывод:

<zip object at 0x7fa6cb30e3c0>
('Aditya', '17')
('Arvind', '23')
('Kunal', '12')
('Naman', '14')
('Samantha', '34')
0 голосов
/ 14 июля 2020

у вас есть файл essay1? или essay1.txt?

это пытается открыть без расширения.

f = open("essay1","ab")

поэтому не удается прочитать.

...