我是个生物学家,一直在写一些脚本来帮助我处理很多文件。最近我开发了一个,我有麻烦。这是一个脚本来解析一些文件,我有,使xls表。问题是,当我使用OO方法时,程序就不能工作了。在这里:
from linecache import getline
class Parser:
def __init__(self , pth='' , prot=''):
self.pth = pth
self.failed = ''
self.prot_name = prot
def sumParser(self , f):
l_info = getline(f , 6)
l_info = l_info.replace(':' , '')
l_info = l_info.replace('plot' , '')
l_info = l_info.replace('+' , '')
l_info = l_info.replace('core' , '')
l_info = l_info.replace('allow' , '')
l_info = l_info.replace('gener' , '')
l_info = l_info.replace('disall' , '')
l_info = l_info.replace('*' , '')
l_info = l_info.replace('Ramachandran' , '')
l_info = l_info.replace('|' , '')
l_info = l_info.replace('%' , '')
l_info= " ".join(l_info.split())
l_info = l_info.replace(' ', ';')
return l_info
def setProt(self, prot):
self.prot_name = prot
def setPth(self , pth):
self.pth = pth
def Open(self):
self.f = open(self.pth)
self.f2 = open('presheet.prst' , 'w')
def Parser(self):
for line in self.f:
model_name = line[0:line.find('.p')]
L = " ".join(line.split())
L = L.replace(' ', ';')
self.f2.write(L+';')
L = self.sumParser(model_name+'.sum') + '\n'
self.f2.write(L)
def Close(self):
self.__f.close()
self.__f2.close()
文件的输入是:一个文件,The.sum,(第6行是我想要的信息所在的位置),另一个是'pdop.pdop公司,格式如下:
GH4p.B9990001.pdb -134134 -111111 1.00000
GH4p.B9990002.pdb -134134 -111111 1.00000
GH4p.B9990003.pdb -134134 -111111 1.00000
GH4p.B9990004.pdb -134134 -111111 1.00000
GH4p.B9990005.pdb -134134 -111111 1.00000
除了在实际文件中有100个条目。 我想要的(没有OO的情况下)是将两个文件合并到一个文件中(使用“;”来连接单词),以便将它们全部放在xls工作表上。剩下的就完成了,开始工作了。 我可以用一个脚本来解析它,不使用OO,但是当我把所有东西都放到一个类中时,它就不起作用了!我不知道我能做些什么,我读了30多次这个代码,看不到解决方案(可能是因为大学的考试)。你知道吗
编辑:抱歉没有说得太清楚!你知道吗
OO代表面向对象,它意味着我正在使用类来完成这项工作,但不确定我是否做对了,这是我自己学会的。你知道吗
它没有输出任何异常,只是工作不正常!!你知道吗
执行此操作的代码很简单,共3行:
parser = Parser('pdop.pdop')
parser.Open()
parser.Parse('GH4p')
就是这样。我本来打算把它添加到更复杂的程序中,但如果它不起作用,我不会这么做,对吧?你知道吗
其他信息。。。预期输出:
GH4p.B99900001.pdb;123123123;123123123;123123123;1.000;91;4;4;1(example!)
目前没有回答
相关问题 更多 >
编程相关推荐