无法使用python执行bash命令

时间:2018-06-18 11:53:58

标签: python bash os.system

我想使用python函数运行bash命令,如下所示:

os.system

然而,即使“sed”部分工作正常,我没有得到“剪切”命令的结果,它返回退出状态1.我试图在控制台中自己键入它,我得到了预期的结果,所以命令是正确的。有人能看出这个程序有什么问题吗?

Ps:我知道subprocess.call已被弃用,我也尝试了$curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_RETURNTRANSFER => 1, CURLOPT_URL => 'http://path_to_my_xml_file', )); $header = array('Accept-Charset: UTF-8'); curl_setopt($ch, CURLOPT_HTTPHEADER, $header); $resp = curl_exec($curl); var_dump ($resp); curl_close($curl); ,但我得到了完全相同的错误。

1 个答案:

答案 0 :(得分:0)

Python默认使用/bin/sh来执行命令。在那里运行第二个命令会产生以下错误消息:

  

cut:分隔符必须是单个字符   尝试'cut --help'获取更多信息。

cut中,默认分隔符为\t,因此请尝试运行以下命令:

cut -f2,4,8,46,63,65,66 raw_extract_{}.tsv > extract_{}_reduced.tsv

或者,您可以使用命令

/bin/bash -c "cut -d$'\t' -f2,4,8,46,63,65,66 raw_extract_{}.tsv > extract_{}_reduced.tsv"