gpt4 book ai didi

python - 从 python 调用 awk

转载 作者:行者123 更新时间:2023-11-28 18:49:26 27 4
gpt4 key购买 nike

我想从 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 中运行良好,我想做的就是将所有步骤合并到一个 python 脚本中,出于某些明显的原因,awk 对于某些处理步骤更好。有人可以向我解释这些错误的原因吗?

最佳答案

您不希望 Python 在将字符串提供给 system 之前将 \n 转换为换行符(或将 \t 转换为制表符) >。按照 jwpat7 的建议使用 r"""....."""。另一种可能性是在字符串中写入类似 ... OFS="\\n"... 的内容。

关于python - 从 python 调用 awk,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15280050/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com