嘿伙计我有一个问题,在我的linux中我通常grep文件中的东西和打印输出或打印计数,我怎么能在python脚本中做同样的事情。 例如
Linux Command : grep name filename.txt | wc -l
Python 3.5.2 Command : os.system("grep name filename.txt | wc -l")
这给了我linux命令的确切结果,但我需要将它存储在变量中,然后打印如何实现它。 在此先感谢。
答案 0 :(得分:0)
您不需要调用外部程序,这将完成您的命令:
import re
pattern = re.compile('name')
with open('filename.txt') as f:
count = sum(bool(pattern.search(line)) for line in f)
print(count)
答案 1 :(得分:0)
考虑:
command1 : grep name filename.txt
command2 : wc -l
命令1的输出将成为命令2的输入
python的语法:
first_output = subprocess.Popen(command 1, shell=True, stdout=subprocess.PIPE)
second_output = subprocess.Popen(command 2,stdin=first_output.stdout,stdout=subprocess.PIPE)
out, err = second_output.communicate()
示例-
p1 = subprocess.Popen("grep name filename.txt", shell=True, stdout=subprocess.PIPE)
p2 = subprocess.Popen("wc -l",stdin=p1.stdout,stdout=subprocess.PIPE)
out, err = p2.communicate()