2010-08-05 105 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模块