У меня есть несколько очень больших текстовых файлов, которые мне нужно обрабатывать, причем самое большое - около 60 ГБ.
Каждая строка имеет 54 символа в семи полях, и я хочу удалить последние три символа из каждого из трех первых полей, что должно уменьшить размер файла примерно на 20%.
Я новичок в Python и имею код, который будет делать то, что я хочу делать примерно в 3,4 ГБ в час, но для того, чтобы быть полезным упражнением, мне действительно нужно получать не менее 10 ГБ/ч - есть ли какие-либо способ ускорить это? Этот код не близок к вызову моего процессора, поэтому я делаю необразованное предположение, что он ограничен скоростью чтения и записи на внутреннем жестком диске?
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()
Любая помощь будет действительно оценена. Я использую IDLE Python GUI в Windows 7 и имею 16 ГБ памяти - возможно, другая ОС была бы более эффективной?
Изменить: Вот фрагмент файла для обработки.
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