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" 等用于该行。

我只想写到第三个逗号之前的数字。我需要一些帮助来修改写行,只写到第三个逗号。这个文件非常大,我希望任何新代码都不会减慢程序速度,而是加快速度。谢谢鲍勃

4

2 回答 2

4

应该就这么简单...

for line in infile:
    line = line.strip().split(',')
    outfile.write(','.join(line[:3]) + '\n')
于 2010-08-05T18:26:18.547 回答
1
for line in infile:
    line = line.strip().split(',',3)
    outfile.write(','.join(line[:-1]) + '\n')

如果任何字段中可能出现“,”,则需要使用 csv 模块

于 2010-08-05T18:47:03.137 回答