[英]shows error " sh: 1: Syntax error: Unterminated quoted string " in python
[英]Python subprocess and bash sed yielding: /bin/sh: 2: Syntax error: Unterminated quoted string
#!/usr/bin/python
import subprocess
import pip
installed_packages = pip.get_installed_distributions()
installed_packages_list = sorted(["%s==%s" % (i.key, i.version)
for i in installed_packages])
comms=''.join(installed_packages_list)
filter="sed 's/\,/\n/g' | tr -d '[] ' | sed 's/\x27//g'"
p = subprocess.Popen([filter], stdin=subprocess.PIPE, stdout=subprocess.PIPE, shell=True)
vtime = p.stdin.write(comms)
print(vtime)
我试图变得棘手,编写一个二进制文件,可以运行该二进制文件来生成已安装的Python模块版本的格式化列表。 以下产生了令人困惑的输出:
None
bin/sh: 2: Syntax error: Unterminated quoted string
您的问题是\\ x27是单引号字符,它会被python解释器解释,从而导致您的单引号字符串尽早终止。 尝试添加额外的转义符,例如:
filter="sed 's/\,/\n/g' | tr -d '[] ' | sed 's/\\\'//g'"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.