Получить указанные значения c из переменных из выходных данных приложения (exe-файл) в формате csv в python - PullRequest
0 голосов
/ 07 февраля 2020

Мне нужны значения start1, end1, start2, end2 из приведенной ниже программы. Как это получить. Я пытался использовать get (), но в качестве его str я получаю сообщение об ошибке «объект str не имеет атрибута get». Self.bin - путь к exe-файлу. {{{{Это может быть похожий вопрос, я пытался их использовать, но не смог получить результат. Пожалуйста, предоставьте решение для кода ниже python. Прежде чем закрыть мой вопрос. Большое спасибо}}}}

    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()
     self.b1 = stdout
     print("B1: \n")
     print(self.b1)

    self.block_b1(self.b1, self.b2, self.b3)



    def block_b1(self, b1, b2, b3): ############get values from above method 
     print(self.b1.get("start1"))
     print(self.b1.get("start2"))      
     print(self.b1.get('end1'))
     print(self.b1.get('end2'))



    output of self.b1 lookslike this :
B1:

id1;start1;end1;id2;start2;end2;subseqDP;hybridDP;E
target;39;45;query;98;104;UCCUGGA&UCCAGGA;(((((((&)))))));-4.37

Я хочу результат, как показано ниже :

39

98

45

104

Ответы [ 2 ]

0 голосов
/ 07 февраля 2020
result_array=self.b1.split(';')
res=[]
for item in result_array:
    if item.isdigit():
      res.push(item)

for i in res:
   print(i)
0 голосов
/ 07 февраля 2020

хорошо, сначала сделайте это

result_array = self.b1.split (';') res = [] для элемента в result_array: if item.isdi git (): res.pu sh (элемент)

для i в разрешении: печать (i)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...