为什么我在每行的开头都得到b',而在每行的结尾处得到'?

时间:2018-11-07 03:37:47

标签: python pxssh

我有这个使用pxssh的python脚本。这是脚本:

from pexpect import pxssh
import getpass
try:
    s = pxssh.pxssh()
    hostname = input('hostname: ')
    username = input('username: ')
    password = getpass.getpass('password: ')
    s.login(hostname, username, password)
    s.sendline('cat hiera/my.yaml')   # run a command
    s.prompt()             # match the prompt
    for line in s.before.splitlines()[1:]:
       print (line)
    s.logout()
except pxssh.ExceptionPxssh as e:
    print("pxssh failed on login.")
    print(e)

我不明白为什么脚本输出看起来像这样:

b'---'
b'settings_prod: |'
b'"""'
b"Generated by 'django-admin startproject' using Django 2.0.5."
b''
b'For more information on this file, see'
b'https://docs.djangoproject.com/en/2.0/topics/settings/'
b''
b'For the full list of settings and their values, see'
b'https://docs.djangoproject.com/en/2.0/ref/settings/'
b'"""'

每行开头的b'和每行结尾的'是怎么回事?如果有的话我该如何摆脱呢?

2 个答案:

答案 0 :(得分:1)

从文档中

  

字节字面量始终以'b'或'B'为前缀;他们产生一个   字节类型的实例,而不是str类型。他们可能只   包含ASCII字符;数值为128或更大的字节   必须用转义符表示。

https://docs.python.org/3.3/reference/lexical_analysis.html#string-literals

答案 1 :(得分:0)

它是二进制数据,需要使用str()进行转换。

print( str( line, 'utf-8' ) )

还有许多其他字符串格式,例如iso-8859-1iso-8859-16等。 但是,如果有疑问,请先尝试utf-8