使用Python子进程modu创建SQLite数据库时出错

2024-04-18 11:13:26 发布

您现在位置:Python中文网/ 问答频道 /正文

以下Python代码尝试在Linux中使用命令行创建SQLite数据库和表:

#!/usr/bin/python2.6
import subprocess

args = ["sqlite3", "db.sqlite", "'CREATE TABLE my_table(my_column TEXT)'"]
print(" ".join(args))

subprocess.call(args)

当我运行代码时,它创建了一个零字节的数据库,输出如下:

^{pr2}$

但是当我复制由代码打印的命令(就在错误消息的上方),并将命令粘贴到命令行时,命令创建了一个带有表的数据库。在

密码怎么了?在


Tags: 代码命令行import命令数据库dbsqlitebin
2条回答

除了@Dirk前面提到的额外引用之外,您还可以在不生成子进程的情况下创建数据库:

import sqlite3

cnx = sqlite3.connect("e:/temp/db.sqlite")
cnx.execute("CREATE TABLE my_table(my_column TEXT)")
cnx.commit()
cnx.close()

将第二个参数中的'删除到sqlite(列表的第三个元素)。subprocess模块独立执行引号操作,并确保参数作为一个字符串传递给可执行文件。它在命令行上工作,因为在命令行中,'必须告诉shell,它应该将封闭的字符串视为单个实体。在

args = ["sqlite3", "db.sqlite", "CREATE TABLE my_table(my_column TEXT)"]

应该行得通。在

相关问题 更多 >