2009-08-05 6 views
13

에 대해 python에서 LOAD DATA LOCAL INFILE 명령을 실행하기위한 구문 정의, 예제, 샘플 코드, 위키 등을 찾고 있습니다.파이썬에서 MySQL LOAD DATA LOCAL INFILE 예제?

나는 그것이 가능하다면 mysqlimport도 사용할 수 있다고 믿는다. 따라서 어떤 피드백 (및 코드 스 니펫)이 더 좋은 경로인지는 환영한다. Google 검색이 현재 정보의 방향을 크게 바꿔 놓지 않습니다.

두 가지 경우의 목표는 동일합니다. 알려진 이름 지정 규칙 & 구조를 사용하여 수백 개의 파일을 단일 MySQL 테이블로 자동로드합니다.

connection = MySQLdb.Connect(host='**', user='**', passwd='**', db='**') 
cursor = connection.cursor() 
query = "LOAD DATA INFILE '/path/to/my/file' INTO TABLE sometable FIELDS TERMINATED BY ';' ENCLOSED BY '\"' ESCAPED BY '\\\\'" 
cursor.execute(query) 
connection.commit() 

사용자의 요구에 맞게 호스트/사용자/passwd 파일/DB를 교체 :

데이비드

+0

당신이 MySQL을 - 파이썬 또는 SQLAlchemy의 같은, 특정 라이브러리를 사용하고 있습니까? – dalloliogm

+0

무엇이든 사용할 수 있습니다. 지금은 스크립트에서 import MySQLdb 만 있습니다. –

답변

22

음, 사용 파이썬의 MySQLdb, 나는이 사용합니다. 이것은 MySQL 문서 here을 기반으로합니다. 정확한 LOAD DATA INFILE 문은 특정 요구 사항 등에 따라 달라집니다 (FIELDS TERMINATED BY, ENCLOSED BY 및 ESCAPED BY 문은 사용자가 읽으려고하는 파일의 유형과 관련됩니다).).

+0

제 경우에는 커밋() 만 마지막에 놓쳤습니다. 이것은 LOAD DATA 이후이거나 트랜잭션이 손실 된 후에 필요합니다. –

+0

많은 장소에 나타나지 않는'connection.commit()'에 대해 두 번 뿌리 뽑 으면 좋겠다. –

+0

정확하게. 대부분의 경우, '커밋'은 언급되지 않았기 때문에 단순히 작동하지 않습니다. – SexyBeast

0

당신은 또한 당신의 쿼리 후 다음 행을 추가하여 가져 오기에 대한 결과를 얻을 수 있습니다 :

results = connection.info() 
관련 문제