【问题标题】:trimming strings in python 3在python 3中修剪字符串
【发布时间】:2017-09-14 13:45:03
【问题描述】:

我有这个函数来获取文件类型:

def get_file_type():
try:
    cmd = ['/usr/bin/file', '/home/user']
    p = Popen(cmd, stdout=PIPE).communicate()[0]
    p = str(p).split(':')[1:]
    if len(p) > 1:
        ' : '.join(p).strip().replace('\\n', '')
    else:
        p = p[0].strip().replace('\\n', '')
    print(p)
except CalledProcessError:
    print('unknown')

但它返回这个:目录' 结尾的撇号不是错字,这是困扰我的地方。而且我不明白为什么(不是它困扰我.. ;))

谢谢

【问题讨论】:

  • 无法复制。重新分配之前p 的值是多少?
  • len(p) > 1 时,您正在执行连接、剥离和替换,您将丢弃 的结果。您大概想将其分配回p
  • @tobias_k p 重新分配前:[" directory\\n'"]
  • @jasonharper 是的 ^^ 谢谢

标签: python whitespace trim


【解决方案1】:

问题在于您将字节视为字符串并且您使用的是 Python3。因此,当您致电 str(p) 时,您会得到如下信息:

"b'/home/user: directory\\n'"

您可以通过 p.decode().split 而不是 str(p).split 来解决此问题

【讨论】:

  • 我目前正在升级到 python3,我认为这是将字节转换为字符串的正确方法:我现在知道它不是。谢谢!
猜你喜欢
  • 1970-01-01
  • 2011-02-23
  • 1970-01-01
  • 1970-01-01
  • 2010-10-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多