큰 (~ 1.6GB) CSV 파일을 "변환"하고 CSV의 특정 필드를 SQLite 데이터베이스에 삽입합니다.Python CSV SQLite
import csv, sqlite3
conn = sqlite3.connect("path/to/file.db")
conn.text_factory = str #bugger 8-bit bytestrings
cur = conn.cur()
cur.execute('CREATE TABLE IF NOT EXISTS mytable (field2 VARCHAR, field4 VARCHAR)')
reader = csv.reader(open(filecsv.txt, "rb"))
for field1, field2, field3, field4, field5 in reader:
cur.execute('INSERT OR IGNORE INTO mytable (field2, field4) VALUES (?,?)', (field2, field4))
모든 내가 제외에 예상대로 ... IT가 프로세스에 엄청난 시간이 소요 작동 :처럼 기본적으로 내 코드 보인다. 나는 그것을 잘못 코딩하고 있는가? 더 높은 성능을 얻고 내가 원하는 것을 성취 할 수있는 더 좋은 방법이 있습니까 (단순히 CSV의 몇 가지 필드를 SQLite 테이블로 변환하십시오)?
** EDIT - csv를 sqlite로 가져 오는 것이 좋습니다.하지만 파일에 쉼표가있는 것으로 나타납니다 (예 : "My title, comma"
). 가져 오기에 오류가 발생했습니다.
다른 생각 ... 파일을 수동으로 편집하는 사건의 너무 많은가 나타납니다 ?? **
큰 파일입니다. 얼마나 시간이 걸려요? – Blender
몇 개의 중복 레코드가 있습니까? 많은 경우 이미 삽입 된 레코드의 로컬'set '을 유지하고 중복에 대해 SQL 호출을 건너 뛰는 것이 더 빠를 것입니다. – kindall
[여기] (http://dev.mysql.com/doc/refman/5.5/en/insert-speed.html)은 MySQL 대량로드 속도 팁입니다. – kindall