我正在尝试处理超过 1GB 的文本文件并使用 python 将数据保存到 Mysql 数据库中。
我在下面粘贴了一些示例代码
import os
import MySQLdb as mdb
conn = mdb.connect(user='root', passwd='redhat', db='Xml_Data', host='localhost', charset="utf8")
file_path = "/home/local/user/Main/Module-1.0.4/file_processing/part-00000.txt"
file_open = open('part-00000','r')
for line in file_open:
result_words = line.split('\t')
query = "insert into PerformaceReport (campaignID, keywordID, keyword, avgPosition)"
query += " VALUES (%s,%s,'%s',%s) " % (result_words[0],result_words[1],result_words[2],result_words[3])
cursor = conn.cursor()
cursor.execute( query )
conn.commit()
实际上插入数据的列超过 18 列,我只粘贴了 4 列(例如)
所以当我运行上面的代码时,执行时间需要一些hours
我所有的疑惑都是
- 有没有其他方法可以非常快速地处理 python 中的 1GB 文本文件?
- 是否有任何框架可以处理 1GB 文本文件并将数据快速保存到数据库中?
- 如何在几分钟内(有可能)处理大尺寸(1GB)的文本文件并将数据保存到数据库中?我所关心的是,我们需要尽可能快地处理 1GB 文件,而不是几个小时。
编辑代码
query += " VALUES (%s,%s,'%s',%s) " % (int(result_words[0] if result_words[0] != '' else ''),int(result_words[2] if result_words[2] != '' else ''),result_words[3] if result_words[3] != '' else '',result_words[4] if result_words[4] != '' else '')
实际上我以上述格式提交值(通过检查结果存在)