2014-12-16 4 views
0

Я хотел бы выполнить следующую последовательность операторов с помощью одного звонка из Python:sqlite3 коллировать с метаданными с помощью Python

> sqlite3 -hexkey thehexkey database_file 
sqlite> .hex-rekey thehexkey "" "" 
sqlite> .exit 

Как я могу привести мета-команд (.hex-Rekey и .exit) для выполнения sqlite3 с помощью одного вызова sqlite3 из Python? Я могу сделать вызов sqlite3, но я не знаю, как получить мета-команды для выполнения, если я не сделаю все из командной строки.

ответ

0

documentation говорит:

Использование sqlite3 в сценарии оболочки

Один из способов использовать sqlite3 в скрипт, чтобы использовать «эхо» или «кошки», чтобы создать последовательность команды в файле, а затем вызвать sqlite3 при перенаправлении ввода из сгенерированного файла команды. Это прекрасно работает и подходит во многих случаях. Но в качестве дополнительного удобства sqlite3 позволяет ввести единую команду SQL в командной строке в качестве второго аргумента после имени базы данных. Когда программа sqlite3 запускается с двумя аргументами, второй аргумент передается в библиотеку SQLite для обработки, результаты запроса печатаются на стандартном выходе в режиме списка, и программа завершается. Этот механизм разработан, чтобы сделать sqlite3 простым в использовании в сочетании с такими программами, как «awk». Например:

$ sqlite3 ex1 'select * from tbl1' | 
> awk '{printf "<tr><td>%s<td>%s\n",$1,$2 }' 
<tr><td>hello<td>10 
<tr><td>goodbye<td>20 
$ 
+0

Можно ли выполнить его без использования AWK? – user1930297

+0

В этом примере 'awk' просто используется для преобразования вывода. –

Смежные вопросы