【发布时间】:2020-07-14 19:17:48
【问题描述】:
我正在运行的代码看起来像这样
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)
编辑:原来 o.stdout 被传递给后续的 subprocess.run。如果 o.stdout 包含括号,则需要将其转义,如答案中所述。所以结束这个问题。
【问题讨论】:
标签: python