Мне нужны заголовки в одной строке и все данные в следующих строках. наконец, мне нужно добавить последний столбец «E» и получить общее значение. (self.bin
- это исполняемый файл).
def run(self ) :
query = self.args.query
target = self.args.target
complete = str(self.bin + ' -q ' + query + ' -t ' + target +' --outMode=C -n 1')
ps = s.Popen(str(complete), stdin = s.PIPE, stdout = s.PIPE, universal_newlines=True)
(stdout, stderr) = ps.communicate()
print("B1: \n")
self.b1 = stdout
print(self.b1)
print("B2: \n")
print(self.b2)
self.block_b1(self.b1, self.b2, self.b3)
def block_b1(self, b1, b2, b3):
query = self.args.query
target = self.args.target
result_array=self.b1.split(';')
res=[]
for item in result_array:
if item.isdigit():
res.append(item)
x = ' --tAccConstr="b:'+res[0]+'-'+res[1]+'" --qAccConstr="b:'+res[2]+'-'+res[3]+'" '
complete = str(self.bin + ' -q ' + query + x + ' -t ' + target + ' --outMode=C -n 1')
ps = s.Popen(str(complete), stdin = s.PIPE, stdout = s.PIPE, universal_newlines=True)
(stdout, stderr) = ps.communicate()
print("B3: \n")
self.b3 = stdout
print(self.b3)
Приведенный выше код дает мне вывод, подобный следующему:
B1:
id1;start1;end1;id2;start2;end2;subseqDP;hybridDP;E
target;39;45;query;98;104;UCCUGGA&UCCAGGA;(((((((&)))))));-4.37
B2:
None
B3:
id1;start1;end1;id2;start2;end2;subseqDP;hybridDP;E
target;87;93;query;24;30;CAAGGGU&ACCCUUG;(((((((&)))))));-3.62
Я хочу, чтобы вывод выглядел следующим образом:
B1, B2 and B3 values are:
id1;start1;end1;id2;start2;end2;subseqDP;hybridDP;E
target;39;45;query;98;104;UCCUGGA&UCCAGGA;(((((((&)))))));-4.37
None
target;87;93;query;24;30;CAAGGGU&ACCCUUG;(((((((&)))))));-3.62
Total E VALUE : - 7.99