如何通过python代码执行awk命令

我有一套我想处理的数据。 我试图运行一个Python代码在Linux中执行“awk”命令。 hover无论我如何尝试不同的参数或function,这一切都没有工作。

我尝试了两种不同的方式,但都不起作用。 我不知道为什么

1)

#!/usr/bin/env python import subprocess as sp cmd = "awk, '{print $2 '\t' $4 '\t' $5 '\t' $6}', B3LYPD.txt" args = cmd.split(',') p = sp.Popen(args, stdin = sp.PIPE, stdout = sp.PIPE, stderr = sp.PIPE ) 

2)

 #!/usr/bin/env python import subprocess as sp cmd = "awk, '{print $2 '\t' $4 '\t' $5 '\t' $6}'" args = cmd.split(',') p = sp.Popen(args, stdin = sp.PIPE, stdout = sp.PIPE, stderr = sp.PIPE ) c = p.communicate('B3LYPD.txt') print c 

虽然我同意这实际上最好在Python中完成,而不是调用awk。 如果你真的需要这样做,那么实际的错误是你的awk。

 #!/usr/bin/env python import subprocess as sp args = ["awk", r'{OFS="\t"; print $2,$4,$5,$6}', "B3LYPD.txt"] p = sp.Popen(args, stdin = sp.PIPE, stdout = sp.PIPE, stderr = sp.PIPE ) print(p.stdout.readline()) # will give you the first line of the awk output 

编辑:修正缺少的报价。