Я использую Python для выполнения sed delete/replace с помощью подпроцесса. Почему-то я не получаю правильное количество побегов. Вот мой код:Escaping в подпроцессе Python для команды sed
from subprocess import call
remover = ["sed", "-i", "'1d'", "file"]
call(remover)
removeq = ["sed", "-i", "'s/\"//g'", "file"]
call(removeq)
Обе эти задачи производят сообщение об ошибке:
sed: -e expression #1, char 1: unknown command: `''
Сколько раз делает "знак нужно экранировать в первом списке и сколько раз делает" должны быть экранированы в последний? Я попробовал один раз, два и три раза, но безрезультатно. Там также нет скрытых символов, которые потенциально могут испортить что-нибудь.
Любые предложения?
Одиночные кавычки указаны неверно. Они используются при запуске команды в оболочке для цитирования слова, но при непосредственном выполнении (без оболочки) они рассматриваются как буквенные символы и путают 'sed' (как видно). –
Возможный дубликат [вызов подпроцесса ошибки команды sed] (http://stackoverflow.com/questions/25522639/subprocess-call-of-sed-command-giving-error) – tripleee
«Я использую Python для выполнения sed delete/заменить на ... «Почему? Просто сделайте это изначально в Python ... – twalberg