鱼C论坛

 找回密码
 立即注册
查看: 2040|回复: 3

[已解决]写的代码总提示string index out of range

[复制链接]
发表于 2018-4-12 20:59:50 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
import re
import os
import math
spli_segments=[]
nonspli_segments=[]
def get_segments(Trainingset_path):
        for file in os.listdir(Trainingset_path):
                file_path=os.path.join(Trainingset_path,file)
                with open(file_path,'r')as input:
                        i=0;
                        sequence=''
                        for line in input.readlines():
                                i+=1
                                if(i==1):
                                        continue
                                elif(i==2):
                                        positions=re.findall(r'.*?\.+(\d+)',line)
                                else:
                                        line=line.strip()
                                        sequence+=line
                        for position in positions:
                                x=int(position)
                                segment=sequence[x-3:x+6]
                                if(re.search(r'[^atcg]', segment) == None):
                                        spli_segments.append(segment)
                        while((i+9)<len(sequence)):
                                segment=sequence[i:i+9]
                                if (re.search(r'[^atcg]', segment) == None) and len(segment)==9 and i+3 not in positions:
                                        nonspli_segments.append(segment)
                                i += 1000
        return spli_segments,nonspli_segments

spli_segments,nonspli_segments=get_segments('/home/pengt/project1/Training Set')
print len(spli_segments)
print len(nonspli_segments)
coding_dic={'a':[0,0,0,1], 't':[0,0,1,0], 'c':[0,1,0,0], 'g':[1,0,0,0]}
index = range(1,37)
with open('trainingdata', 'w') as f:
        for segment in spli_segments:
                coding_value = []
                line = '1'
                for i in range(9):
                        coding_value += coding_dic[segment[i]]
                for i in range(36):
                         line+=' '+str(index[i])+':'+str(coding_value[i])
                line += '\n'
                f.write(line)
        for segment in nonspli_segments:
                coding_value = []
                line = '-1'
                for i in range(9):
                       coding_value += coding_dic[segment[i]]
                for i in range(36):
                         line+=' '+str(index[i])+':'+str(value[i])
                line += '\n'
                f.write(line)
f.close()



IndexError: string index out of range
最佳答案
2018-4-12 21:31:44
错误信息发全点,有助于快速定位
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-4-12 21:31:44 | 显示全部楼层    本楼为最佳答案   
错误信息发全点,有助于快速定位
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-4-13 09:08:15 | 显示全部楼层
提示是这里出错了
coding_value += coding_dic[segment[i]]
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-4-13 09:19:03 | 显示全部楼层
已解决,谢谢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-3-10 13:20

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表