我有许多非常大的文本文件需要处理,最大的大约 60GB。
每行在七个字段中有 54 个字符,我想从前三个字段中的每个字段中删除最后三个字符 - 这应该会减少大约 20% 的文件大小。
我是 Python 的新手,并且有一个代码可以以每小时 3.4 GB 的速度完成我想做的事情,但要成为一个有价值的练习,我真的需要至少 10 GB/小时 - 有什么方法可以加快速度这了?这段代码并没有接近挑战我的处理器,所以我猜测它受到内部硬盘驱动器读写速度的限制?
def ProcessLargeTextFile():
r = open("filepath", "r")
w = open("filepath", "w")
l = r.readline()
while l:
x = l.split(' ')[0]
y = l.split(' ')[1]
z = l.split(' ')[2]
w.write(l.replace(x,x[:-3]).replace(y,y[:-3]).replace(z,z[:-3]))
l = r.readline()
r.close()
w.close()
任何帮助将非常感激。我在 Windows 7 上使用 IDLE Python GUI 并拥有 16GB 内存 - 也许不同的操作系统会更有效?
编辑:这是要处理的文件的摘录。
70700.642014 31207.277115 -0.054123 -1585 255 255 255
70512.301468 31227.990799 -0.255600 -1655 155 158 158
70515.727097 31223.828659 -0.066727 -1734 191 187 180
70566.756699 31217.065598 -0.205673 -1727 254 255 255
70566.695938 31218.030807 -0.047928 -1689 249 251 249
70536.117874 31227.837662 -0.033096 -1548 251 252 252
70536.773270 31212.970322 -0.115891 -1434 155 158 163
70533.530777 31215.270828 -0.154770 -1550 148 152 156
70533.555923 31215.341599 -0.138809 -1480 150 154 158