Код, который я запускаю, выглядит примерно так
o=subprocess.run( ['ls -1 pathtosomedir/'+prefix+'*'],shell=True, stdout=subprocess.PIPE, universal_newlines=True)
print('details:',o.stdout)
Если в возвращаемом файле есть скобки, например test (1) .csv
, то вывод будет
подробности: test (1) .csv
/ bin / sh: 1: Синтаксическая ошибка: "(" неожиданно
Почему, похоже, пытается проанализировать вывод? И как правильно обрабатывать эти случаи? Спасибо!
(я использую python 3.6.9)
EDIT: Оказалось, что o.stdout был передан для последующего subprocess.run. И если o.stdout содержал скобки, его нужно экранировать, как указано в ответе. Итак, закрывая этот вопрос.