如何用Python将多个制表符分隔的文本文件插入MySQL?
我正在尝试创建一个程序,这个程序可以处理一些用制表符分隔的文本文件,然后逐个读取这些文件里的数据,并把它们存入MySQL数据库。比如,有几个文本文件,像movies.txt,内容大概是这样的:
1 Avatar
3 Iron Man
3 Star Trek
还有actors.txt,格式也是一样的等等。每个文本文件里都有上百条记录,每条记录都有一个ID和对应的值,就像上面看到的那样。我在这个网站和其他地方找到了很多代码示例,但我就是搞不清楚怎么把它们应用到我的情况中。
到目前为止,我的代码大概是这样的……
import MySQLdb
database_connection = MySQLdb.connect(host='localhost', user='root', passwd='')
cursor = database_connection.cursor()
cursor.execute('CREATE DATABASE library')
cursor.execute('USE library')
cursor.execute('''CREATE TABLE popularity (
PersonNumber INT,
Category VARCHAR(25),
Value VARCHAR(60),
)
''')
def data_entry(categories):
每次我试图把找到的其他代码和我的代码结合起来时,我就完全迷失了方向。希望有人能帮我,或者告诉我该怎么做,或者指引我去找更多的信息。
我尝试过的代码示例包括:
import MySQLdb, csv, sys
conn = MySQLdb.connect (host = "localhost",user = "usr", passwd = "pass",db = "databasename")
c = conn.cursor()
csv_data=csv.reader(file("a.txt"))
for row in csv_data:
print row
c.execute("INSERT INTO a (first, last) VALUES (%s, %s), row")
c.commit()
c.close()
还有:
1 个回答
1
MySQL可以直接读取TSV文件,方法是使用mysqlimport
这个工具,或者执行LOAD DATA INFILE
这个SQL命令。这样做比用Python处理文件然后再插入要快很多,但你也可以学习这两种方法。祝你好运!