Python - 具有特定行的Loadtext,用于存储大文件

时间:2015-09-15 10:34:40

标签: python text readline

我必须在一个巨大的文本文件中获取特定的行。到现在为止,我尝试如下。我的目标是为特定的迭代提取列,这里每500行。但是通过继续使用" readlines",由于文件的大小,有时我会遇到一些崩溃(直到4Gb)。 所以我想找到另一种方法来避免问题...

with open('/test.txt') as f:
    text = f.readlines()


A = ""    
for i in text[3000:3500]:
  A+=i

B=A.splitlines()
listed = []
for i in range(len(B)):
  C=B[i][3:47].split(" ")

  while True:
    try:
      C.remove("")
    except ValueError:
      break
  listed.append(C)

import numpy as np
import matplotlib.pyplot as plt

#print listed
x = np.array(listed, dtype=float)
y = x.astype(np.float)

plt.plot(y[:,1]);plt.ylim(0,5);plt.show()

此帖子遵循前question

1 个答案:

答案 0 :(得分:3)

如果我理解正确你想要获得3000到3500的行。你可以这样做:

import itertools
with open('test.txt') as f:
    lines = list(itertools.islice(f, 3000, 3500))