我编写了一个使用 subprocess 模块调用 unix 排序的 python 脚本。我正在尝试根据两列(2 和 6)对表进行排序。这是我所做的
sort_bt=open("sort_blast.txt",'w+')
sort_file_cmd="sort -k2,2 -k6,6n {0}".format(tab.name)
subprocess.call(sort_file_cmd,stdout=sort_bt,shell=True)
然而,输出文件包含一个不完整的行,当我解析表格时会产生错误,但是当我检查输入文件中为排序而给出的条目时,该行看起来很完美。我想当 sort 尝试将结果写入指定的文件时存在一些问题,但我不确定如何解决它。
该行在输入文件中看起来像这样
gi|191252805|ref|NM_001128633.1| 智人 RIMS 结合蛋白 3C (RIMBP3C),mRNA gnl|BL_ORD_ID|4614 gi|124487059|ref|NP_001074857.1| RIMS 结合蛋白 2 [Mus musculus] 103 2877 3176 846 941 1.0102e-07 138.0
然而,在输出文件中只打印 gi|19125。我该如何解决这个问题?
任何帮助将不胜感激。
内存