2017-09-24 18 views
0

大規模なCSVファイルをループし、効率的な方法で再生しながら、変数名をすべて新しいファイルに書き出しようとしています。私はitertoolsからisliceを使用しています。誰も私のコードよりも効率的な方法のためのヒントを持っていますか?大きなCSVファイルをループする

from itertools import islice 
var = len(csv) 

with open("csv_file1.csv") as file1, open("trial1.csv", 'w') as file2: 
    head1 = list(islice(file1, var))[0].split(",") 
    while (var > 1): 
     for line in head1: 
      file2.write(str(head1)) 
      file2.write("\n") 
      var = var - 1 
      print(var) 
file2.close() 
+0

csvファイルの変数名はどういう意味ですか、第1行目(ヘッダー)ですか?そうでない場合は、あなたが働いているCSVの一部を私たちに示してください。 – DobromirM

+0

また、Pythonにはcsvモジュールがあり、CSVファイルの構文の詳細を抽象的なものにすることができます。 –

答えて

2
  • 使用csvコメント
  • で提案されているようにモジュールは、任意のストリームに対処するための良い方法です発電機にあなたの受信ファイルを、ラップ、csvファイルを含む
def read_csv(filename): 
    with open(filename) as f: 
     reader = csv.reader(f) 
     for row in reader: 
      yield row 

その後、read_csv("csv_file1.csv")はfor-loopで使用できるジェネレータを提供します。またはマップ/フィルタ関数を適用してそれは行変換のロジックに依存します。

関連する問題