MySQL と Python に関する質問があります。
このコマンドはシェルでは機能しますが、使用すると機能しませんos.execvp
。
$./mysql -D test -e "テーブルを表示" +----------------+ | | Tables_in_test | +----------------+ | | サンプル | +----------------+
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 "テーブルを表示"'] エラー 1049 (42000): 不明なデータベース ' test -e "show tables"'
これが Python 構文の問題かどうかはわかりません。また、同じコマンドがos.system
呼び出しでも機能します。
os.system(MYSQL + ' -D test -e "show tables"')
これを機能させる方法を教えてください。