2010-08-05 248 views
3

我想清理我的輸出並只寫入我需要的部分行到新文件而不是整行。這是培訓相關編碼部分:僅將一部分行寫入文件

counter = 1 

for line in completedataset: 
    print counter 
    counter +=1 

    for t in matchedLines: 
     if t in line[:line.find(',')]: 
      smallerdataset.write(line) 
      break 

這裏是數據的一個示例:

NOVE1780418" , 「---」, 「JAX17054099」, 「5」, 「156323558」,等等用於line。

我只想寫第三個逗號之前的數字我需要一些幫助修改寫行直到第三個逗號寫這個文件是非常大的,我希望任何新的代碼不會減慢程序的速度,但會加快速度。謝謝鮑勃

+0

抱歉卻都 – 2010-08-05 18:20:46

+0

不是一個回答你的問題,但看起來你可能喜歡使用枚舉函數:「for counter,enumerate(completedataset):」 – fholo 2010-08-05 20:51:15

回答

4

它應該是如此簡單小號...

for line in infile: 
    line = line.strip().split(',') 
    outfile.write(','.join(line[:3]) + '\n') 
1
for line in infile: 
    line = line.strip().split(',',3) 
    outfile.write(','.join(line[:-1]) + '\n') 

如果存在的可能性「」顯示的任何字段,你需要使用csv模塊