使用Python子进程处理带括号的文件路径

2024-04-18

我要处理的文件的路径中包含括号。

path = "/dir/file (with parentheses).txt"

我正在尝试用 Python 处理它们,如下所示:

subprocess.call("./process %s" % path, shell=True)

但是,我收到以下错误

/bin/sh: 1: Syntax error: "(" unexpected

如何传递正确的字符串来处理正确的路径?


不要使用shell=True。它很容易出问题(如OP中所示)并且能够shell注入攻击 http://en.wikipedia.org/wiki/Shell_injection#Shell_injection.

像这样做:

subprocess.call(["./process", path])

如果你坚持使用shell=True, 阅读安全考虑 https://docs.python.org/3/library/subprocess.html?highlight=subprocess#security-considerations在 python 文档中,并确保使用shlex.quote正确转义所有元字符。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用Python子进程处理带括号的文件路径 的相关文章

随机推荐