我的文本文件包含如下所示的数据;
South-America; Raul; Segio; 31; 34234556
Africa; Kofi; Adama; 27; 65432875
North-America; James; Watson; 29; 43552376
Africa; Koko; Stevens; 23; 23453243
Europe; Anthony; Baker; 32; 89878627
答案 0 :(得分:1)
这种情况发生的原因是因为创建行不属于for循环。因为Europe
是表中的最后一项,所以它是唯一执行的项。
您希望在for循环中按以下方式移动执行:
mydb = MySQLdb.connect(host="127.0.0.1",user="root",passwd="12345678*",db="TESTDB1")
cursor = mydb.cursor()
with open('data.txt', 'r') as z:
for line in z:
m = {}
(m['0'], m['1'], m['2'], m['3']) = line.split(";")
Table = m['0']
sql = "CREATE TABLE IF NOT EXISTS " +Table+ " (name char(40), lastname char(40), age int (3), code int (10))"
cursor.execute(sql)
mydb.close()
即。首先创建数据库,然后循环插入所需的每个表,然后关闭它。
另一种方法是缩进代码的下半部分。