Изменение представления символов значений труб StdoutLinux

Ответить
Anonymous
 Изменение представления символов значений труб Stdout

Сообщение 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>
Цель состоит в том, чтобы получить загрузку процессора и температуры ЦП на Raspberry Pi, работающий Debian Linux.  Выход был < /p>

['top -n 1 | grep "%Cpu"']

xxx: temp=49.8'C

lenght is 387

TempCpu = %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

index of id = 169

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

Answers were : /nRPStemp=49.8'C

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
Если визуально проверяет значение tempcpu, оно составляет около 50 символов, а не 387, который возвращает функция Length () . Таким образом, очевидно, что переменная TempCPU не является значением символа, которую он отображает. Что приводит к другим вопросам, когда я пытаюсь извлечь определенные значения, например, "ID".>

Подробнее здесь: https://stackoverflow.com/questions/797 ... ipe-values
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Linux»