首页 > 解决方案 > exe 文件的输出为 csv 格式。我想要一个标题和所有数据一起

问题描述

我想要一行中的标题和下一行中的所有数据。最后,我需要添加最后一列“E”并获得总值。(self.bin是一个exe文件)。

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

标签: pythoncsvexe

解决方案


 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("B1, B2 and B3 values are \n")
  self.b3 = stdout
  print(self.b1)
  print(self.b2)
  print(self.b3)
  print("Total value for E",sum)

推荐阅读