所以我有一個問題。我正在處理由4行多行組成的.txt文件。我正在python 3中工作。處理速度 - 編輯大型2GB文本文件python
我寫了一個代碼,意思是取一個文本文件的第二行和第四行,只保留這兩行的前20個字符(同時保留第一行和第三行未經編輯) ,並創建一個新的編輯文件,包括編輯後的第2行和第4行以及未編輯的第1行和第3行。這種趨勢對每一行都是一樣的,因爲我使用的所有文本文件的行號都是4的倍數。
這適用於小文件(共約100行),但我需要的版本是50百萬+線,它需要4個多小時。
以下是我的代碼。任何人都可以給我一個關於如何加快我的程序的建議嗎?謝謝!
import io
import os
import sys
newData = ""
i=0
run=0
j=0
k=1
m=2
n=3
seqFile = open('temp100.txt', 'r')
seqData = seqFile.readlines()
while i < 14371315:
sLine1 = seqData[j]
editLine2 = seqData[k]
sLine3 = seqData[m]
editLine4 = seqData[n]
tempLine1 = editLine2[0:20]
tempLine2 = editLine4[0:20]
newLine1 = editLine2.replace(editLine2, tempLine1)
newLine2 = editLine4.replace(editLine4, tempLine2)
newData = newData + sLine1 + newLine1 + '\n' + sLine3 + newLine2
if len(seqData[k]) > 20:
newData += '\n'
i=i+1
run=run+1
j=j+4
k=k+4
m=m+4
n=n+4
print(run)
seqFile.close()
new = open("new_100temp.txt", "w")
sys.stdout = new
print(newData)
你使用什麼環境? –
你真的需要python嗎? 'awk'NR%2 == 0 {$ 0 = substr($ 0,1,20)} 1'old.txt> new.txt'? – Kevin
@ZagorulkinDmitry我使用PyDev(Eclipse) –