我必须在一个巨大的文本文件中获取特定的行。到现在为止,我尝试如下。我的目标是为特定的迭代提取列,这里每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。
答案 0 :(得分:3)
如果我理解正确你想要获得3000到3500的行。你可以这样做:
import itertools
with open('test.txt') as f:
lines = list(itertools.islice(f, 3000, 3500))