python执行操作系统()尝试显示mysql表时出现1049错误“未知数据库”

2024-06-02 04:31:50 发布

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

我有一个关于MySQL和Python的问题。在

这个命令在shell上有效,但在我使用os.execvp时不行。在

$./mysql -D test -e "show tables"

+----------------+
| Tables_in_test |
+----------------+
| sample         |
+----------------+

python中相应的代码片段是

^{pr2}$

其输出为:

[./mysql', '-D test -e "show tables"']
ERROR 1049 (42000): Unknown database ' test -e "show tables"'

我不确定这是否是Python语法的问题。同样,同一个命令可以用于os.system调用。在

os.system(MYSQL + ' -D test -e "show tables"')

请告诉我如何使这个工作。在


Tags: sample代码intest命令tablesosshow
2条回答

尝试:

args.extend([MYSQL, '-D', 'test', '-e', 'show tables'])

如果您不知道^{}模块,您可能还对它感兴趣:

^{pr2}$

或者只要subp.call([MYSQL, ...])并且不必自己fork+exec,exit status是返回值IIRC。在

每个单独的参数都需要是参数列表中的单独元素。在

args.extend([MYSQL, '-D test', '-e "show tables"'])

相关问题 更多 >