以下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}$但是当我复制由代码打印的命令(就在错误消息的上方),并将命令粘贴到命令行时,命令创建了一个带有表的数据库。在
密码怎么了?在
除了@Dirk前面提到的额外引用之外,您还可以在不生成子进程的情况下创建数据库:
将第二个参数中的
'
删除到sqlite
(列表的第三个元素)。subprocess
模块独立执行引号操作,并确保参数作为一个字符串传递给可执行文件。它在命令行上工作,因为在命令行中,'
必须告诉shell,它应该将封闭的字符串视为单个实体。在应该行得通。在
相关问题 更多 >
编程相关推荐