У меня есть вопрос, связанный с MySQL и Python.
Эта команда работает на оболочке, но не при использовании os.execvp
.
$./mysql -D test -e "show tables"
+----------------+
| Tables_in_test |
+----------------+
| sample |
+----------------+
Соответствующий кусок кода на Python будет
def execute():
args = []
args.extend(sys.argv[1:])
args.extend([MYSQL, '-D test -e "show tables"'])
print args
os.execvp(args[0], args)
child_pid = os.fork()
if child_pid == 0:
os.execvp(args[0], args)
else:
os.wait()
Вывод этого:
[./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"')
Пожалуйста, дайте мне знать, как заставить это работать.