我想grep模式并将其返回到一个变量,对于多个文件,我知道如何使用bash来实现,但现在我想在python中实现它。
在bash中,我可以做一些类似的事情
for i in {1..3}
do
result=$(grep "pattern" folder/name-${i}/out)
done
然而,我不知道如何在Python中实现它。我试过了:
for i in range(1,4):
name = 'name-' + str(i)
result = subprocess.check_output("grep 'pattern' folder/{name}/out", shell=True)
返回错误grep: folder/{name}/out: No such file or directory
有人知道怎么修吗?
for i in range(1,4):
name='name-'+str(i)
result=subprocess.check_output("grep 'pattern' folder/%s/out" % name, shell=True)
或者在你的命令前加上f:
result = subprocess.check_output(f"grep 'pattern' folder/{name}/out", shell=True)
在字符串之前需要一个f
才能使其成为f-string
:
for i in range(1, 4):
name = 'name-' + str(i)
result = subprocess.check_output(f"grep 'pattern' folder/{name}/out", shell=True)
或者您可以进行%
字符串格式化:
for i in range(1, 4):
name = 'name-' + str(i)
result = subprocess.check_output(f"grep 'pattern' folder/%s/out" % name, shell=True)
您忘记将f
放在"grep 'pattern' folder/{name}/out"
之前。所以你可以使用:
for i in range(1, 4):
name = 'name-' + str(i)
result = subprocess.check_output(f"grep 'pattern' folder/{name}/out", shell=True)
或者您可以使用str.format()
:
for i in range(1, 4):
name = 'name-' + str(i)
result = subprocess.check_output("grep 'pattern' folder/{name}/out".format(name=name), shell=True)