Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/27.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执行awk命令_Python_Linux_Awk - Fatal编程技术网

从python执行awk命令

从python执行awk命令,python,linux,awk,Python,Linux,Awk,我试图从python脚本执行以下awk命令 awk 'BEGIN {FS="\t"}; {print $1"\t"$2}' file_a > file_b 为此,我尝试使用子流程,如下所示: subprocess.check_output(["awk", 'BEGIN {FS="\t"}; {print $1"\t"$2}', file_a, ">", file_b]) 其中文件a

我试图从python脚本执行以下
awk
命令

awk 'BEGIN {FS="\t"}; {print $1"\t"$2}' file_a > file_b
为此,我尝试使用
子流程
,如下所示:

subprocess.check_output(["awk", 'BEGIN {FS="\t"}; {print $1"\t"$2}',
                         file_a, ">",
                         file_b])
其中
文件a
文件b
是指向文件路径的字符串

从这里,我得到了错误

awk:无法打开>(没有此类文件或目录)


我确信我以错误的方式将参数输入到
子流程中,但我无法找出问题所在。

虽然它在您选择的shell中看起来像它,
但在您选择的shell中看起来像它,
可能对您有意思可能对您有意思非常清楚的解释,谢谢!在检查输出的列表中,代码段中只缺少“\u a”文件。我尝试使用check_输出,但它不允许设置标准输出。所以我最终使用了call。@FilipeAleixo啊,有道理它不会。它的
help()
文档中有一个设置stderr的示例,所以我认为stdout也可以,但我想不是。更新相应的答案。非常清楚的解释,谢谢!在检查输出的列表中,代码段中只缺少“\u a”文件。我尝试使用check_输出,但它不允许设置标准输出。所以我最终使用了call。@FilipeAleixo啊,有道理它不会。它的
help()
文档中有一个设置stderr的示例,所以我认为stdout也可以,但我想不是。相应地更新答案。
with open(file_b, 'wb') as f:
    subprocess.call(["awk", 'BEGIN {FS="\t"}; {print $1"\t"$2}', file_a], stdout=f)