免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2546 | 回复: 1

将文本转换成dict再进行pickle [复制链接]

论坛徽章:
0
发表于 2015-10-16 08:20 |显示全部楼层
本帖最后由 warlegtree 于 2015-10-16 09:12 编辑

做了一个account.txt
123456 123456 15000
987654 123456 10000

想把这个文件读取成dict,然后进行pickle的处理
#!/usr/bin/env python
import pickle
import os
afile = file('account.txt','rb')
dict_acc = {}
for line in afile.readlines():
         key = line.split()[0]
         info = line.split()[1:]
         dict_acc[key] = info
afile.close()


if os.path.exists('user.pkl'):
    pass
else:
    user_file = file('user.pkl','wb')
    pickle.dump(afile, user_file)
    user_file.close()

但执行不成功,报错信息如下
Traceback (most recent call last):
  File "pictest.py", line 15, in <module>
    pickle.dump(fa, user_file)
  File "/usr/lib64/python2.6/pickle.py", line 1362, in dump
    Pickler(file, protocol).dump(obj)
  File "/usr/lib64/python2.6/pickle.py", line 224, in dump
    self.save(obj)
  File "/usr/lib64/python2.6/pickle.py", line 306, in save
    rv = reduce(self.proto)
  File "/usr/lib64/python2.6/copy_reg.py", line 70, in _reduce_ex
    raise TypeError, "can't pickle %s objects" % base.__name__
TypeError: can't pickle file objects

望高手们提点下小白,谢谢
----------------------------------------------------

找到原因了,有一行写错了,应该是pickle.dump(dict_acc,user_file)
afile的type是文件,python无法pickle文件对象

论坛徽章:
4
金牛座
日期:2013-10-11 16:12:50卯兔
日期:2014-07-31 09:17:19辰龙
日期:2014-08-08 09:28:02狮子座
日期:2014-09-14 20:32:05
发表于 2015-10-16 15:56 |显示全部楼层
  1. pickle.dump(dict_acc, user_file)
复制代码
不应该是这样吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP