8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

在 Python 3 中将字节转换为字符串

Jaromanda X 1月前

117 0

我将外部程序的标准输出捕获到字节对象中:>>> from subprocess import *>>> stdout = Popen(['ls', '-l'], stdout=PIPE).communicate()[0]>>>

我将外部程序的标准输出捕获到一个 bytes 对象中:

>>> from subprocess import *
>>> stdout = Popen(['ls', '-l'], stdout=PIPE).communicate()[0]
>>> stdout
b'total 0\n-rw-rw-r-- 1 thomas thomas 0 Mar  3 07:03 file1\n-rw-rw-r-- 1 thomas thomas 0 Mar  3 07:03 file2\n'

我想将其转换为普通的 Python 字符串,以便可以像这样打印它:

>>> print(stdout)
-rw-rw-r-- 1 thomas thomas 0 Mar  3 07:03 file1
-rw-rw-r-- 1 thomas thomas 0 Mar  3 07:03 file2

如何 bytes 使用 Python 3 str 对象转换为


See 在 Python 3 中将字符串转换为字节的最佳方法? for the other way around.

帖子版权声明 1、本帖标题:在 Python 3 中将字节转换为字符串
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由Jaromanda X在本站《string》版块原创发布, 转载请注明出处!
最新回复 (0)
  • 我认为你确实想要这个:

    >>> from subprocess import *
    >>> command_stdout = Popen(['ls', '-l'], stdout=PIPE).communicate()[0]
    >>> command_text = command_stdout.decode(encoding='windows-1252')
    

    Aaron 的回答是正确的,只是你需要知道 哪种 编码。我相信 Windows 使用“windows-1252”。只有当你的内容中有一些不寻常的(非 ASCII)字符时,这才会有影响,但那时就会有所不同。

    顺便说一句,这确实重要,这是 Python 转向使用两种不同类型的二进制和文本数据的原因:它无法在它们之间进行神奇的转换,因为除非你告诉它,否则它不知道编码!你唯一知道的方法是阅读 Windows 文档(或在此处阅读)。

返回
作者最近主题: