【发布时间】:2014-03-03 21:29:41
【问题描述】:
我正在尝试使用7z.exe 解压缩文件,并且密码中包含特殊字符
前。 &)kra932(lk0¤23
通过执行以下命令:
subprocess.call(['7z.exe', 'x', '-y', '-ps^&)kratsaslkd932(lkasdf930¤23', 'file.zip'])
7z.exe 启动正常,但提示密码错误。
这是我创建的文件,它让我发疯。
如果我在 windows 命令行上运行命令,它运行良好
7z.exe x -y -ps^&)kratsaslkd932(lkasdf930¤23 file.zip
如何让 python 转义 & 字符?
@Wim 问题发生在密码上,因为当我执行时
7z.exe x -y -ps^&)kratsaslkd932(lkasdf930¤23 file.zip
它说无效命令')kratsaslkd932(lkasdf930¤23'
我使用 python 2.76,由于公司工具只能在 2.76 上运行,因此无法升级到 3.x
【问题讨论】:
-
听起来像 Python 2.7!如果是这样:
subprocess.call(['7z.exe', 'x', '-y', u'-ps^&)kratsaslkd932(lkasdf930¤23', 'file.zip']) -
您的密码从哪个字符开始?示例密码与您实际使用的密码不同。
-
什么版本的 Python?什么样的特殊字符,例如非字母数字、unicode、bash 转义字符?我在你的例子中看到了所有三个。
-
顺便说一句,我认为您的问题是 ¤ 字符,而不是 &。上面的 Kroltans 建议可能会奏效!
-
如果在 python3 上运行是一个选项,您的代码原样也可以工作。