Моя цель - выполнить следующую команду bash в Python и сохранить ее вывод:
echo 'sudo ./run_script.sh -dates \\{\\'2017-11-16\\',\\'2017-11-29\\'\\}'|sed 's;\\\\;\\;'
Когда я запускаю эту команду в bash, вывод будет: sudo ./run_script.sh -dates \{\'2019-10-05\',\'2019-10-04\'\}
MyПервоначальная идея состояла в том, чтобы заменить двойной обратный слеш на один обратный слеш в Python. Как это ни смешно, я не мог сделать это в Python (только при использовании print()
вывод такой, как хотелось бы, но я не могу сохранить вывод print()
, а str () не конвертирует \ вПоэтому я решил сделать это в bash.
import subprocess
t= 'some \\ here'
cmd = "echo \'"+ t+"\'|sed 's;\\\\;\\;'"
ps = subprocess.run(cmd,shell=True,stdout=subprocess.PIPE,stderr=subprocess.STDOUT)
ps.stdout
Out[6]: b"sed: -e expression #1, char 7: unterminated `s' command\n"
Запуск Python 3.6.8 в Ubuntu 18