如何从文件中读取int?我有一个包含整数数据的大型(512MB)txt文件,格式如下:
0 0 0 10 5 0 0 140
0 20 6 0 9 5 0 0
现在如果我使用
c = file.read(1)
,我每次只能得到一个字符,但我需要每次得到一个整数。像这样:c = 0
c = 10
c = 5
c = 140 and so on...
希望有大佬能够帮忙。提前感谢。
如何从文件中读取int?我有一个包含整数数据的大型(512MB)txt文件,格式如下:
0 0 0 10 5 0 0 140
0 20 6 0 9 5 0 0
c = file.read(1)
,我每次只能得到一个字符,但我需要每次得到一个整数。像这样:c = 0
c = 10
c = 5
c = 140 and so on...
希望有大佬能够帮忙。提前感谢。
with open('in.txt', 'r') as f:
for line in f:
for s in line.split(' '):
num = int(s)
print num
for line in f
,您逐位读取文件(既不使用read() all
也不使用readlines
)。这很重要,因为您的文件很大。512 MB 的空间并不算很大。如果你无论如何都要创建数据列表,那么一次性进行读取步骤应该也没有问题:
my_int_list = [int(v) for v in open('myfile.txt').read().split()]
如果您能够对代码进行结构化,以便不需要将整个列表存储在内存中,则最好使用生成器:
def my_ints(fname):
for line in open(fname):
for val in line.split():
yield int(val)
然后使用它:
for c in my_ints('myfile.txt'):
# do something with c (which is the next int)
open('input.txt').read()[:2**25].split(' ', 50)
对我有效,而一个“稍微”长一点的前缀open('input.txt').read()[:2**26].split(' ', 50)
则会引发MemoryError错误。 - thebjorn
print str.split.__doc__
。这会给你一些有关 split 如何工作的信息。提示:那里的文档为你提供了如何同时处理制表符和空格的线索。 - azhrei