Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 子流程+;以反斜杠结尾的字符串的grep_Python_Bash_Grep_Subprocess - Fatal编程技术网

Python 子流程+;以反斜杠结尾的字符串的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 -

我想使用subprocess对以反斜杠结尾的字符串进行grep:

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完美。谢谢陛下。你介意把答案贴出来吗?