首页 > 解决方案 > sqlite python - 从txt文件将记录读入表

问题描述

我创建了一个 python 脚本来设置 SQLite 数据库并创建一个表,现在我试图从 .txt 文件中将值读入表中,如下所示

import  sqlite3
conn = sqlite3.connect('mydatabase.db')
c = conn.cursor()

c.execute('''CREATE TABLE mytable
         (var1 TEXT,
         var2 REAL)''')

c.execute('separator "," ')

c.execute('import records.txt myTable ')

conn.commit()

for row in c.execute('SELECT * FROM myTable'):
    print(row)

conn.close()

records.txt 看起来像

item1, 8.8
item2, 9.1

当我从命令行运行 python 代码时,我得到

    c.execute('separator "," ')
sqlite3.OperationalError: near "separator": syntax error

我如何在这里使用分隔符 sql 语句,也许同样的问题会出现在 import 语句中?

如何让这段代码工作?

标签: pythonsqlite

解决方案


我认为 Python 模块不可能做到这一点sqlite3。(.separator对我来说只有前导点)命令以及.import, 是 CLI fronted 的功能sqlite3

如果你想使用这些,你可以使用 subprocess 来调用命令:

import subprocess

p = subprocess.Popen(["sqlite3", "mydatabase.db"], stdout=subprocess.PIPE, stdin=subprocess.PIPE)

p.communicate(b"""
CREATE TABLE mytable
         (var1 TEXT,
         var2 REAL);
.separator ","
.import records.txt myTable
""")

推荐阅读