是否使用python pickle?

use*_*069 0 python file-io pickle

我第一次玩Python,并且手上有一个迷你项目,我正在忙着掌握这种语言.我基本上有兴趣知道我是否想要一个好的解决方案,或者是否有更好的方法去做.

有一个CSV文件基本上列出了整数(或应列出整数),每行约有三个整数,用逗号分隔.我这样做的方法是:

  1. 使用readline()将每一行读入变量
  2. 通过将逗号指定为分隔符来拆分变量
  3. 一旦变量被拆分,我访问这个3号数组的每个元素并做一个测试,检查它是一个整数还是一些其他数据类型

这是非常直接的,从技术上来说,"做到了".但是,在我阅读了一些建议使用pickle模块来读取由整数组成的文件的Python文档后,我的思绪发生了冲突.

链接到Python文档

显然,如果正在读取readline,则每行都以字符串形式读入.这意味着,整数也被作为字符串读入,这里可能会有精度损失?Pickle是一个神奇的模块,可以将所有内容转换为字符串表示形式,然后可以将其转换回原始数据类型表示而不会丢失精度.

恕我直言,我的程序代码在没有使用pickle模块的情况下工作正常,但是为了编写好的代码,你们有什么建议以及它背后的理由是什么:

Ign*_*ams 7

pickle期望文件采用特定格式,由pickle模块本身生成.要读取CSV文件,您应该使用该csv模块.

此外,Python支持任意长度的整数,因此不必担心它们是字符串; 一旦他们被转换,你将得到每一个数字.

>>> int('1234567890123456789012345678901234567890')
1234567890123456789012345678901234567890L
Run Code Online (Sandbox Code Playgroud)