zoukankan      html  css  js  c++  java
  • 遇到的python3 不兼容 python2的地方

    python3中执行以下代码

    >>> import subprocess
    >>> p=subprocess.Popen('ls',shell=True,stdout=subprocess.PIPE) 
    >>> d=p.stdout.read()
    >>> d
    b'agent2.0.tgz
    jdk1.8.0_152
    jdk-8u152-linux-x64.tar.gz
    mha4mysql-manager-0.56-0.el6.noarch.rpm
    mha4mysql-node-0.56-0.el6.noarch.rpm
    script.rpm.sh
    scripts
    '
    >>> d.split('
    ')
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    TypeError: 'str' does not support the buffer interface

    buffer interface允许对象公开其底层缓冲区的信息,使用 buffer interface的的一个例子是file对象的write()方法,任何通过buffer interface 导出一系列字节的对象都可以被写入文件。python3开始只支持bytes和Unicode编码,不再支持str

    解决方法是,将str 转换为tytes,处理完之后再转回str类型

    >>> p=subprocess.Popen('ls',shell=True,stdout=subprocess.PIPE)
    >>> d=p.stdout.read()
    >>> d.split(bytes('
    ','utf8'))
    [b'agent2.0.tgz', b'jdk1.8.0_152', b'jdk-8u152-linux-x64.tar.gz', b'mha4mysql-manager-0.56-0.el6.noarch.rpm', b'mha4mysql-node-0.56-0.el6.noarch.rpm', b'script.rpm.sh', b'scripts', b'']
  • 相关阅读:
    PTA L1-002 打印沙漏 (20分)
    音乐研究
    LeetCode 155. 最小栈
    LeetCode 13. 罗马数字转整数
    LeetCode 69. x 的平方根
    LeetCode 572. 另一个树的子树
    errno错误号含义
    僵尸进程和孤儿进程
    TCP和UDP相关概念
    图相关算法
  • 原文地址:https://www.cnblogs.com/Bccd/p/8797453.html
Copyright © 2011-2022 走看看