结果前面的b是什么?

时间:2018-02-15 10:05:08

标签: python python-3.x

你好我已经制作了一个python脚本,告诉我我在ssh上使用我的磁盘,但每次运行程序时都会得到这个。

size b'442G' used b' 401M' available b'419G'

我想摆脱422G和其他人的b和引号。

这是我的代码

import sys, paramiko
import os
import time



username = "alex"
hostname = "192.168.1.91"
password = "alex"
command = "df /dev/sda3 -h"
port = 22
client = paramiko.SSHClient()

def updateTimeMenu():
    time_menu.delete(0, "end")
    time_menu.add_command(label=time.ctime())


def ssh():
    client.load_system_host_keys()
    client.set_missing_host_key_policy(paramiko.WarningPolicy())
    client.connect(hostname, port=port, username=username, password=password)
    menu()




def menu():
    stdin, stdout, stderr = client.exec_command(command)
    output = stdout.read()
    print("Size", output[65:69], ", Used", output[70:75], ", Available", output[77:81]) #should output hdd info (size, used, avalable)
    time.sleep(4)
    ssh()
ssh()

1 个答案:

答案 0 :(得分:0)

这是因为您检索二进制字符串,因为程序可以通过一个通道发送所有类型的字节,我们可以decode将其转换为.decode('ascii')的字符串:

print("Size",
      output[65:69].decode('ascii'),
      ", Used",
      output[70:75].decode('ascii'),
      ", Available",
      output[77:81].decode('ascii'))

请注意,我们这里使用 ASCII&#34;编解码器&#34; ,因为这似乎是使用的,但当然有几种方法可以用原始字节编码字符串。< / p>