如何用Python将多个制表符分隔的文本文件插入MySQL?

0 投票
1 回答
3700 浏览
提问于 2025-04-16 05:27

我正在尝试创建一个程序,这个程序可以处理一些用制表符分隔的文本文件,然后逐个读取这些文件里的数据,并把它们存入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()

还有:

Python 文件读写

1 个回答

1

MySQL可以直接读取TSV文件,方法是使用mysqlimport这个工具,或者执行LOAD DATA INFILE这个SQL命令。这样做比用Python处理文件然后再插入要快很多,但你也可以学习这两种方法。祝你好运!

撰写回答