擅长:python、mysql、java
<p>问题是你的命令应该被拆分。subcces要求cmd是一个列表,而不是一个字符串。
不应该是:</p>
<pre><code>subprocess.call('''awk 'BEGIN {FS="\t";OFS="\n"} {a[$1]=a [$1] OFS $2 FS $3 FS $4} END
{for (i in a) {print i a[i]}}' 2_lcsorted.txt > 2_locus_2.txt''')
</code></pre>
<p>那不行。如果给子进程一个字符串,则假定这是要执行的命令的路径。命令必须是一个列表。签出<a href="http://www.gossamer-threads.com/lists/python/python/724330" rel="nofollow noreferrer">http://www.gossamer-threads.com/lists/python/python/724330</a>。另外,因为您使用的是文件重定向,所以应该使用<code>subprocess.call(cmd, shell=True)</code>。您也可以使用<code>shlex</code>。</p>