我正在做一个Python挑战,但是在任务6中遇到了一些问题:
comments = []
comments.append(file_zip.getinfo('%s.txt'%name).comment)
print(''.join(comments))
但这给了我一个错误:
类型错误:序列项0:应为str实例,找到个字节
我在寻找答案,并尝试这样做:
print(b''.join(comments))
它工作和打印:
b'***************************************************************\n****************************************************************\n** **\n** OO OO XX YYYY GG GG EEEEEE NN NN **\n** OO OO XXXXXX YYYYYY GG
GG EEEEEE NN NN **\n** OO OO XXX XXX YYY YY GG GG EE NN NN **\n** OOOOOOOO XX XX YY GGG EEEEE NNNN **\n** OOOOOOOO XX XX YY GGG EEEEE NN **\n** OO OO XXX XXX YYY YY GG GG EE NN **\n**
OO OO XXXXXX YYYYYY GG GG EEEEEE NN **\n** OO OO XX YYYY GG GG EEEEEE NN
我认为它将'/n'
视为一个字符并打印出来,但是,我不希望这样。我怎样才能成功?
问题是
file_zip.getinfo('%s.txt'%name).comment
显然返回一个bytes
对象。当您尝试加入一个str
,即''.join(..)
时,会得到错误:加入
b''
是一种可行的替代方法,但正如您所注意到的,它不会转义像'\n'
这样的特殊字符;这是bytes
实例的预期行为。在
b''
上对字符串进行join
编辑之后,您可以decode
该字符串:或者,
decode
每个comments
元素的map
和join
在空字符串''
上,正如您最初尝试的那样:相关问题 更多 >
编程相关推荐