ディープコピーせずにインデックスをずらしただけの配列を作りたい

投稿者: Anonymous

行数の多い CSV を読み込んで MySQL に流し込みたいです

CSV は1行目にヘッダが書かれていて2行目からを executemany に渡して
bulk insert したいです

results に以下のように CSV の 2 次元配列が入っているとして

[['col1', 'col2'],
 [1, 'a'],
 [2, 'b'],
  :

results.pop(0) とか results[1:]
をすると index を 1 ずつずらした配列を生成するので前処理で時間とメモリを消費してしまいます

C でいう *p++ みたいなことがしたいですが python では不可能でしょうか?

CSVを読むときにヘッダだけ分離して読み込むっていう方法も考えたのですが
諸事情であまりやりたくありません

値を渡したいメソッドはこちらです
https://dev.mysql.com/doc/connector-python/en/connector-python-api-mysqlcursor-executemany.html

よろしくお願いします

解決

コメントいただいた通り、イテレーターを使う方法

itresults = iter(results)
next(itresults)
cursor.executemany(stmt, itresults)

でうまく行きました

回答者: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *