Я пытаюсь использовать subprocess.popen для выполнения двух команд Linux, а затем обработать поток STDOUT для извлечения температуры ЦП и средней нагрузки ЦП. Вот мой код: < /p>
#!/usr/bin/env python
import subprocess
Answers = ""
IPs = ["192.168.70.13"]
IPName = ["xxx"]
for x in IPs:
cmd = ['ssh', 'me@'+x, 'vcgencmd', ' measure_temp']
cmd2 = ['top -n 1 | grep "%Cpu"']
j = IPs.index(x)
print(cmd2)
proc = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
o, e = proc.communicate()
print(IPName[j] + ': ' + o.decode('ascii'))
Answers = Answers + IPName[j] + o.decode('ascii')
proc.stdout.close()
proc.stderr.close()
proc2 = subprocess.Popen(cmd2, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True)
o, e = proc2.communicate()
TempCpu = o.decode('ascii')
TempCpu = TempCpu.strip()
print("lenght is " + str(len(TempCpu)))
print("TempCpu = " + TempCpu)
k = TempCpu.find('id')
print("index of id = " + str(k))
value = TempCpu[k-6:k]
print(value)
print(IPName[j] + ': ' + o.decode('ascii'))
Answers = Answers + IPName[j] + ' == ' + o.decode('ascii')
print('Answers were : /n' + Answers)
< /code>
Цель IT для получения загрузки процессора и температуры ЦП на Raspberry Pi под управлением Linus Debian. Выход был < /p>
['top -n 1 | Grep " %CPU" ']
xxx: temp = 49,8'c
lenght составляет 387
tempcpu = %cpu (S): 0,0 US, 0,0 Sy, 0,0 Ni, 100,0 ID, 0,0 Wa, 0,0 h.0 si, 0,0 S.0. /> Индекс ID = 169 < /p>
xxx: %CPU (S): 0,0 US, 0,0 Sy, 0,0 Ni, 100,0 ID, 0,0 WA, 0,0 HI,
0.0 Si, 0,0 ST < /p> Ответы были: /nrpstemp=49.8'c . %CPU (S): 0,0 US, 0,0 SY, 0,0 Ni, 100,0 ID, 0,0 WA, 0,0 HI,
0,0 Si, 0,0 ST < /p>
< /blockquote>
, если кто -то визуально исследует значение Tempcpu, оно составляет около 50 символов, а не 387, что функция длины возвращает. Таким образом, очевидно, что переменная TempCPU не является значением символа, которую он отображает. Что приводит к другим вопросам, когда я пытаюсь извлечь определенные значения, то есть «id».>
Подробнее здесь: https://stackoverflow.com/questions/797 ... ipe-values
Изменение представления символов значений труб Stdout ⇐ Linux
-
Anonymous
1755878024
Anonymous
Я пытаюсь использовать subprocess.popen для выполнения двух команд Linux, а затем обработать поток STDOUT для извлечения температуры ЦП и средней нагрузки ЦП. Вот мой код: < /p>
#!/usr/bin/env python
import subprocess
Answers = ""
IPs = ["192.168.70.13"]
IPName = ["xxx"]
for x in IPs:
cmd = ['ssh', 'me@'+x, 'vcgencmd', ' measure_temp']
cmd2 = ['top -n 1 | grep "%Cpu"']
j = IPs.index(x)
print(cmd2)
proc = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
o, e = proc.communicate()
print(IPName[j] + ': ' + o.decode('ascii'))
Answers = Answers + IPName[j] + o.decode('ascii')
proc.stdout.close()
proc.stderr.close()
proc2 = subprocess.Popen(cmd2, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True)
o, e = proc2.communicate()
TempCpu = o.decode('ascii')
TempCpu = TempCpu.strip()
print("lenght is " + str(len(TempCpu)))
print("TempCpu = " + TempCpu)
k = TempCpu.find('id')
print("index of id = " + str(k))
value = TempCpu[k-6:k]
print(value)
print(IPName[j] + ': ' + o.decode('ascii'))
Answers = Answers + IPName[j] + ' == ' + o.decode('ascii')
print('Answers were : /n' + Answers)
< /code>
Цель IT для получения загрузки процессора и температуры ЦП на Raspberry Pi под управлением Linus Debian. Выход был < /p>
['top -n 1 | Grep " %CPU" ']
xxx: temp = 49,8'c
lenght составляет 387
tempcpu = %cpu (S): 0,0 US, 0,0 Sy, 0,0 Ni, 100,0 ID, 0,0 Wa, 0,0 h.0 si, 0,0 S.0. /> Индекс ID = 169 < /p>
xxx: %CPU (S): 0,0 US, 0,0 Sy, 0,0 Ni, 100,0 ID, 0,0 WA, 0,0 HI,
0.0 Si, 0,0 ST < /p> Ответы были: /nrpstemp=49.8'c . %CPU (S): 0,0 US, 0,0 SY, 0,0 Ni, 100,0 ID, 0,0 WA, 0,0 HI,
0,0 Si, 0,0 ST < /p>
< /blockquote>
, если кто -то визуально исследует значение Tempcpu, оно составляет около 50 символов, а не 387, что функция длины возвращает. Таким образом, очевидно, что переменная TempCPU не является значением символа, которую он отображает. Что приводит к другим вопросам, когда я пытаюсь извлечь определенные значения, то есть «id».>
Подробнее здесь: [url]https://stackoverflow.com/questions/79743607/modifying-the-character-repersentation-of-stdout-pipe-values[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия