qin_yin 发表于 2020-10-20 21:02:10

pickle不能写入

本帖最后由 qin_yin 于 2020-10-20 22:29 编辑

为什么文件不能修改

qin_yin 发表于 2020-10-20 22:33:41

我另一种方式修改成功了文件,但是我修改之后就不能读取了,读取就报错:EOFError: Ran out of input,只有重新打开才能读取

suchocolate 发表于 2020-10-21 08:08:16

本帖最后由 suchocolate 于 2020-10-21 08:14 编辑

图里的是因为写入之后,文件没有关闭,相当于没保存,然后又读取了一遍,打印出来就还是老的。
爬忘记关闭建议使用with open:
import pickle

# 原数据
ls1 =
with open('test.pkl', 'wb') as f:
    pickle.dump(ls1, f)

with open('test.pkl', 'rb') as f:
    result = pickle.load(f)
    print(result)

suchocolate 发表于 2020-10-21 08:08:59

qin_yin 发表于 2020-10-20 22:33
我另一种方式修改成功了文件,但是我修改之后就不能读取了,读取就报错:EOFError: Ran out of input,只有 ...

你的另一种方式是什么,把代码贴出来。

qin_yin 发表于 2020-10-21 13:16:36

suchocolate 发表于 2020-10-21 08:08
图里的是因为写入之后,文件没有关闭,相当于没保存,然后又读取了一遍,打印出来就还是老的。
爬忘记关闭 ...

代码有点长我把修改和查看的部分给你看
修改
    with open('D:\\测试文件\\数据表\\洗车登记表.pkl','rb') as oid_text_file:
      temp = time.localtime(os.path.getatime('D:\\测试文件\\数据表\\洗车登记表.pkl'))
      write_time = '日期:%d年:%d月:%d日:%d时:%d分\n\n' % (temp,temp,temp,temp,temp)
      centext = pickle.load(oid_text_file)
      
    with open('D:\\测试文件\\数据表\\洗车登记表.pkl', 'wb') as new_text_file:
      length = len(project)
      for i in range(length):
            centext += project + ':' + text + '\n'
      centext += write_time
      pickle.dump(centext,new_text_file)
      urse_longin()
查看:
with open('D:\\测试文件\\数据表\\洗车登记表.pkl','rb') as car_file:
      car_list = pickle.load(car_file)
      show_car_list = g.textbox('洗车登记表',text=car_list)
页: [1]
查看完整版本: pickle不能写入