调用AWK我想从Python中调用一个awk命令行脚本:从蟒蛇
os.system('''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''')
它提供了以下错误:
awk: cmd. line:1: BEGIN{FS=" ";OFS="
awk: cmd. line:1: ^unterminated string
awk: cmd. line:1: BEGIN{FS=" ";OFS="
awk: cmd. line:1: ^syntax error
256
当我使用子使用subprocess.call,另一种错误弹出:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib64/python2.7/subprocess.py", line 493, in call
return Popen(*popenargs, **kwargs).wait()
File "/usr/lib64/python2.7/subprocess.py", line 679, in __init__
errread, errwrite)
File "/usr/lib64/python2.7/subprocess.py", line 1249, in _execute_child
raise child_exception
OSError: [Errno 2] No such file or directory
它运行在shell罚款和所有我想要做的是所有步骤结合在一个单一的蟒蛇小号cript,并且由于某些明显的原因,awk对于某些处理步骤更好。有人可以向我解释这些错误的原因吗?
它在'''之前用'r'做什么? (即'r'''awk'BEGIN {FS =“\ t”; OFS =“\ n”} {...'('\ n'被解释得太早了一步) – 2013-03-07 19:32:43
你究竟在干什么试图完成?我可以看到'awk'运行一个预先写好的'awk'脚本,但是为什么用一个硬编码的脚本调用awk,当你可以在Python中做同样的事情时呢? – chepner 2013-03-07 19:38:57
@chepner ..我首选awk,因为我不知道python是否可以在流输入上工作..它只是我相信解析在awk中更快 – WYSIWYG 2013-03-08 12:41:00