l4222 2023-08-22 10:56 采纳率: 88.9%
浏览 6
已结题

一个py脚本运行时报错,python3 test.py data1.csv data2.tab data3.txt output.txt,如何解决?

一个py脚本运行时报错,
python3 test.py data1.csv data2.tab data3.txt output.txt

nr[line[2]] = [line[6]]
IndexError: list index out of range

test.py如下:

import sys
 
nr_cog = sys.argv[1]
cog_tab = sys.argv[2]
blast = sys.argv[3]
output = sys.argv[4]
 
#读取 NR 和 COG 映射关系
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 = {}
 
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()
 
#读取 blast 比对结果,根据 NR id,将 COG id、描述、分类等信息匹配在后方
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()

请问如何解决?谢谢!

  • 写回答

2条回答 默认 最新

  • 澈丹丶 2023-08-22 12:29
    关注

    13行后面打印下line的值,看下元素个数,应该是不到7个吧,或者说不是每行都有7个。

    for line in nr_cog:
        line = line.split(',')
        print(line)
        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])
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 8月30日
  • 已采纳回答 8月22日
  • 创建了问题 8月22日

悬赏问题

  • ¥20 需要帮我远程操控一下,运行一下我的那个代码,我觉得我无能为力了
  • ¥20 有偿:在ubuntu上安装arduino以及其常用库文件。
  • ¥15 请问用arcgis处理一些数据和图形,通常里面有一个根据点划泰森多边形的命令,直接划的弊端是只能执行一个完整的边界,但是我们有时候会用到需要在有很多边界内利用点来执行划泰森多边形的命令
  • ¥30 在wave2foam中执行setWaveField时遇到了如下的浮点异常问题,请问该如何解决呢?
  • ¥750 关于一道数论方面的问题,求解答!(关键词-数学方法)
  • ¥200 csgo2的viewmatrix值是否还有别的获取方式
  • ¥15 Stable Diffusion,用Ebsynth utility在视频选帧图重绘,第一步报错,蒙版和帧图没法生成,怎么处理啊
  • ¥15 请把下列每一行代码完整地读懂并注释出来
  • ¥15 寻找公式识别开发,自动识别整页文档、图像公式的软件
  • ¥15 为什么eclipse不能再下载了?