Python - 为大文件加载特定行的文本
Python - Loadtext with specific lines for huge file
我必须在一个巨大的文本文件中获取特定的行。直到现在我尝试如下。我的目标是为特定的迭代提取列,这里每 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()
此 post 遵循前一个 。
如果我没理解错的话,你想要获取第 3000 到 3500 行。你可以这样做:
import itertools
with open('test.txt') as f:
lines = list(itertools.islice(f, 3000, 3500))
我必须在一个巨大的文本文件中获取特定的行。直到现在我尝试如下。我的目标是为特定的迭代提取列,这里每 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()
此 post 遵循前一个
如果我没理解错的话,你想要获取第 3000 到 3500 行。你可以这样做:
import itertools
with open('test.txt') as f:
lines = list(itertools.islice(f, 3000, 3500))