Python 子流程+;以反斜杠结尾的字符串的grep
我想使用subprocess对以反斜杠结尾的字符串进行grep:Python 子流程+;以反斜杠结尾的字符串的grep,python,bash,grep,subprocess,Python,Bash,Grep,Subprocess,我想使用subprocess对以反斜杠结尾的字符串进行grep: product = "myProduct\" 所以在bash中,如果我这样做: zgrep -n 'myProduct\\' file_of_products.txt.gz 它是有效的(我得到一堆线)。正在使用python进行尝试: import subprocess product = "myProduct\\" command = f"""zgrep -
product = "myProduct\"
所以在bash中,如果我这样做:
zgrep -n 'myProduct\\' file_of_products.txt.gz
它是有效的(我得到一堆线)。正在使用python进行尝试:
import subprocess
product = "myProduct\\"
command = f"""zgrep -n "{product}" {filename}"""
return_code, output = subprocess.getstatusoutput(command)
我得到
'/bin/sh: 1: Syntax error: Unterminated quoted string'
您可以将此重构代码与原始字符串和单引号一起使用:
导入子流程
产品=r“我的产品\\”
command=f“zgrep-n'{product}'{filename}'
返回\ U代码,输出=子流程。getstatusoutput(命令)
试试:product=r“myProduct\\”
这也是我的猜测。是的。我得到:'/bin/grep:training backslash'
(我应该在问题中指定)您可能应该在Python中尝试4个反斜杠\`是转义字符,
\`是文本反斜杠。在Python的bash so 4中需要2。然后尝试:command=f“zgrep-n'{product}'{filename}'
@anubhava:works完美。谢谢陛下。你介意把答案贴出来吗?