【发布时间】:2019-02-19 02:26:00
【问题描述】:
我想从一个 txt 文件中写入和读取 Python 数组。我知道如何编写它,但是读取数组需要我提供一个关于数组长度的参数。我事先没有数组的长度,有没有办法在不计算其长度的情况下读取数组。我的工作正在进行中的代码如下。如果我在 a.fromfile 中提供 1 作为第二个参数,它会读取数组的第一个元素,我希望读取所有元素(基本上是要重新创建的数组)。
from __future__ import division
from array import array
L = [1,2,3,4]
indexes = array('I', L)
with open('indexes.txt', 'w') as fileW:
indexes.tofile(fileW)
a = array('I', [])
with open('indexes.txt', 'r') as fileR:
a.fromfile(fileR,1)
【问题讨论】:
-
你来自不同的编程语言吗?因为在python中我们不需要定义数组的大小,我们可以创建列表并使用
list -
请也尝试向我们提供
indexes.txt的示例内容,以便我们检查似乎是什么问题 -
如果你解释一下为什么你想使用
array而不是list,那也很好。 -
如果你想用二进制数据做这个,我认为确定数组大小的简单方法是从文件大小计算它。
os模块中有函数可以高效获取文件大小。 -
我使用数组来节省内存,我正在处理一个大问题