Как передать команду sed
на popen
без использования строки?Как передать команду `sed` для« popen »без использования строковой строки?
Когда я передать патч в команду popen
в виде списка я получаю сообщение об ошибке: unterminated address regex
(см первого примера)
>>> COMMAND = ['sed', '-i', '-e', "\$amystring", '/home/map/myfile']
>>> subprocess.Popen(COMMAND).communicate(input=None)
sed: -e expression #1, char 11: unterminated address regex
с использованием сырой строки формы она работает, как ожидалось:
>>> COMMAND = r"""sed -i -e "\$amystring" /home/map/myfile"""
>>> subprocess.Popen(COMMAND, shell=True).communicate(input=None)
Мне очень нравится проходить "\$amystring"
как элемент в списке. Пожалуйста, избегайте ответы как
>>> COMMAND = r" ".join(['sed', '-i', '-e', "\$amystring", '/home/map/myfile']
>>> subprocess.Popen(COMMAND, shell=True).communicate(input=None)
, но он показывает (нет, нет) для меня. –
Что не так с командой 'command = 'sed -i -e" \ $ amystring "/ home/map/myfile'' – Jkdc
Реальный вопрос: зачем вы обходитесь с sed, когда используете Python? Вы посмотрели на модуль re? –