我有这个函数来获取文件类型:
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')
但它返回:目录' 结尾的撇号不是一个错字,这是困扰我的。我不明白为什么(不是它困扰我......;))
谢谢
答案 0 :(得分:3)
问题在于您将字节视为字符串而您正在使用Python3。所以当你致电str(p)
时,你得到的是:
"b'/home/user: directory\\n'"
您可以通过p.decode().split
代替str(p).split