Python程序如何加载和读取文件中的特定行?

时间:2013-10-05 22:35:59

标签: python parsing

我有一个二进制格式的巨大数字文件,只需将其某些部分解析为数组。我查看了numpy.fromfileopen,但他们没有选择从文件中的位置A读取到位置B.可以这样做吗?

2 个答案:

答案 0 :(得分:2)

如果您正在处理“大文件”,我会只是读取 - 忽略所有内容,直到您确实需要数据为止。

相反:Python中的文件对象有一个.seek()方法,您可以使用该方法直接跳转到需要开始有效地解析数据的位置。

with open('huge_file.dat', 'rb') as f:
    f.seek(1024 * 1024 * 1024)  # skip 1GB
    ...

另请参阅:http://docs.python.org/2/tutorial/inputoutput.html#methods-of-file-objects

答案 1 :(得分:1)

如果您知道自己感兴趣的数据的准确位置,可以使用文件对象上的seek(<n bytes>)方法documented。在开始阅读之前,只需调用一次(使用给定的偏移量)。