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" など。

3つ目のコンマより前の数字まで書きたいです。書き込み行を変更して、3 番目のコンマまでのみ書き込むように助けが必要です。このファイルは非常に大きいので、新しいコードによってプログラムの速度が低下するのではなく、速度が上がることを願っています。ありがとうボブ

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 に答える