目前我有一个py脚本,test.py,在linux中运行时:
python3 test.py data1.csv data2.tab data3.txt output.txt
data1.csv、data2.tab和data3.txt是已知数据,运行期间没报错,但是最终的output.txt文件是空的,如何解决呢?
以下是test.py文件:
import sys
nr_cog = sys.argv[1]
cog_tab = sys.argv[2]
blast = sys.argv[3]
output = sys.argv[4]
nr = {}
nr_cog = open(nr_cog, 'r')
for line in nr_cog:
line = line.split(',')
if line[2] not in nr:
nr[line[2]] = [line[6]]
elif line[6] not in nr[line[2]]:
nr[line[2]].append(line[6])
nr_cog.close()
cog = {}
cog_tab = open(cog_tab, 'r')
for line in cog_tab:
line = line.split('\t')
cog[line[0]] = '\t'.join(line[0:3])
cog_tab.close()
output = open(output, 'w')
blast = open(blast, 'r')
print(f'{blast.readline().strip()}\tCOG_name\tCOG_class\tCOG_description', file = output)
for line in blast:
line = line.strip()
id = line.split('\t')[5]
if id in nr:
for id2 in nr[id]:
print(f'{line}\t{cog[id2]}', file = output)
blast.close()
output.close()