Как постоянно обновлять переменную (процентное пополнение) в зависимости от вывода программы на консоли - PullRequest
0 голосов
/ 03 апреля 2019

Я пытаюсь прочитать процентное соотношение Bulk Extractor, которое будет использоваться для обновления индикатора выполнения.Когда Bulk Extractor работает, он производит обновление дополнения строк в консоли, например,

14:55:06 Offset 2315MB (0.90%) Done in  2:50:37 at 17:45:43
14:55:11 Offset 2399MB (0.94%) Done in  2:52:46 at 17:47:57
14:55:16 Offset 2483MB (0.97%) Done in  2:55:32 at 17:50:48
14:55:22 Offset 2566MB (1.00%) Done in  3:01:02 at 17:56:24
14:55:27 Offset 2650MB (1.04%) Done in  3:02:49 at 17:58:16

Я хочу использовать регулярное выражение для извлечения процента из консоли.Я хочу добиться этого, выполнив что-то вроде этого:

#Using Ipconfig as example command
cmd = "ipconfig"
pipe = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE).stdout
global output
output= pipe.read()
# Prints ipconfig command
print(output)

#RegX to find % and the next 2 characters
x = re.findall("%\d\d", str(output))
print(x)

Пример вывода с консоли

#IPCONFIG
Ip config b'\r\nWindows IP Configuration\r\n\r\n\r\nEthernet adapter Ethernet 5:\r\n\r\n   Connection-specific DNS Suffix  . : \r\n   Link-local IPv6 Address . . . . . : fe80::54a5:f051:24bd:95bf%18\r\n

#RegX

Regx output  ['%18', '%25']

Как мне создать цикл while для этого, я пыталсячтобы сделать это для достижения следующего псевдокода:

if bulk extractor is running: 
 Then True:   
   while True:
       Percent = re.findall("%\d\d", str(output))
       #update.progressbar but for now lets just print screen
       print("current % =", percent)
       #Loop Again
else:
 break

Вот команда для Bulk Extractor

cmd = os.system("%programdata%\\bulk_extractor64.exe -o test "\\imagefile\"")

Итак, я хочу читать в процентах от Bulk Extractor и непрерывнообновить переменную, которая будет использоваться для обновления индикатора выполнения.

Может кто-нибудь помочь мне достичь этого или есть лучший способ сделать это?

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