Надеюсь, простая проблема, с использованием subprocess.check_output Я пытаюсь выполнить sqlite3 и прочитать в выводе. Для CLI sqlite3 имеется флаг, с помощью которого вы можете запустить его с «-separator», чтобы изменить разделитель для вывода на запятую.
Он работает в командной строке, если я включу его так:
sqliteOutput = subprocess.check_output(["sqlite3 "," -separator ',' ",dbLocation,"SELECT blah from argh"])
Затем происходит сбой с ошибкой CLI sqlite3, "Error: too many options"
, и он цитирует инструкцию SELECT, но если я просто запускаю команду, как указано выше, в оболочке без формата для команды подпроцесса, она работает как ожидалось.
Если я запускаю его снова без разделителя, он работает отлично, вот так;
sqliteOutput = subprocess.check_output(["sqlite3 ",dbLocation,"SELECT blah from argh"])
Очевидно, я либо неправильно понимаю, как он интерпретирует аргумент-разделитель в подпроцессе, есть ли способ изменить его для правильной работы?
Для любознательных я не могу использовать для этого библиотеку Python sqlite3.