1分钟后python脚本停止在终端上运行

时间:2020-05-27 09:46:50

标签: python pandas bioinformatics

我在遇到有关python脚本的问题。我在机器上使用Ubuntu作为第二个操作系统,并且编写了python代码以输出有关某些蛋白质的不同信息。在给我第一个蛋白质的输出后,它会在第二个蛋白质的过程中减慢速度,直到某个时候它不再响应。 当我键入control + c时,我收到以下消息:

func (u *Apple) AfterFind() (err error) {
  u.Front= "https://www.example.com/"+ u.Front
  u.Back= "https://www.example.com/"+ u.Back
  u.Top= "https://www.example.com/"+ u.Top
  return
}

停止时的代码部分如下:

Traceback (most recent call last):
File "testPerf.py", line 185, in <module>
uniqueDict(args.input,args.output)

File "testPerf.py", line 73, in uniqueDict

keyName = '%s_%s' %(hmm[i],cassetteId[i])

File "/home/t/anaconda3/envs/crispr-env/lib/python3.7/site-packages/pandas/core/series.py",
line 1071, in __getitem__

result = self.index.get_value(self, key)

File "/home/t/anaconda3/envs/crispr-env/lib/python3.7/site-packages/pandas/core/indexes>>/base.py", line 4708, in get_value

s = getattr(series, "_values", series)

File "/home/t/anaconda3/envs/crispr-env/lib/python3.7/site-packages/pandas/core/series.py", line 562, in _values

这是一段代码,它从名为crisprOutputFile的文件中读取内容,并尝试在字典中输出一些数据,非常容易... 然后,将此字典与其他一些字典结合在一起,以提供包含有关蛋白质数据的输出字典。 请帮助。

1 个答案:

答案 0 :(得分:2)

在给定的代码段中,如果在keyName中找到dict1,则i不会递增。 如果i保持不变,则当前迭代将与先前的迭代相同,因此它将成为无限循环。

如果您实际上打算在每次迭代中更新i(这更有意义),请像这样降低i+=1的集成级别

with open(crisprOutputFile, "r") as file1:
            data = pd.read_csv(file1)
            hmm  = data.HMM
            cassetteId = data.cassette_id
            list1 = data.predicted_label
            i = 0
            while i < len(hmm):
                predictedL = list1[i][7:20]
                predictedL =  predictedL.replace( ')','')
                predictedL =  predictedL.replace( ']','')
                predictedL =  predictedL.replace( "'","")
                predictedL =  predictedL.replace( ',','')
                keyName = '%s_%s' %(hmm[i],cassetteId[i])
                if keyName not in dict1:
                    dict1[keyName] = predictedL
                i+=1

如@ run-out在评论中所建议,我建议您使用for循环。