Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 5, 2018 14:56:30

Imarden
Зарегистрирован: 2015-02-20
Сообщения: 44
Репутация: +  0  -
Профиль   Отправить e-mail  

subprocess.check_output: cannot use a string pattern on a bytes-like object

Добрый день!
Пытаюсь проверить в python запущен ли процесс в виртуальной машине.
Пытаюсь переписать на Python https://github.com/jfcoz/postgresqltuner

 import re
import subprocess
test_variable = subprocess.check_output('dmesg',shell=True)
result = re.findall(r'vmware|kvm|xen|vbox|hyper-v', test_variable)
print(result)

Выдает ошибку:
TypeError: cannot use a string pattern on a bytes-like object
Как лучше написать чтобы проверить в python запущен ли процесс в виртуальной машине?
Спасибо

Офлайн

#2 Июнь 6, 2018 11:00:45

spikejke
Зарегистрирован: 2018-02-12
Сообщения: 42
Репутация: +  5  -
Профиль   Отправить e-mail  

subprocess.check_output: cannot use a string pattern on a bytes-like object

TypeError: cannot use a string pattern on a bytes-like object
subprocess - вернул Вам объект типа bytes, необходимо декодировать его:

 result = re.findall(r'vmware|kvm|xen|vbox|hyper-v', test_variable.decode('utf-8'))

Отредактировано spikejke (Июнь 6, 2018 11:02:51)

Офлайн

#3 Июнь 6, 2018 12:31:28

Imarden
Зарегистрирован: 2015-02-20
Сообщения: 44
Репутация: +  0  -
Профиль   Отправить e-mail  

subprocess.check_output: cannot use a string pattern on a bytes-like object

Работает спасибо.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version