繁体   English   中英

Python3 - 在类型的对象上“需要一个类似字节的对象,而不是&#39;str&#39;”<class 'bytes'>

[英]Python3 - "a bytes-like object is required, not 'str'" on object of type <class 'bytes'>

下面的一段代码给我带来了问题:

with open(fname, 'wb') as f:
    for p, values in params:
        s = str.encode("%s" % p)
        print("the type is:", type(s))
        print(s)
        print(s, file=f)

输出是:

the type is: <class 'bytes'>
b'myfancystring'
...
TypeError: a bytes-like object is required, not 'str'

所以它是一个“字节”类型的对象,仍然给我这个错误? 我很迷惑。

非常感谢。

你好,普法夫

print 在将其传递给文件对象的 write() 方法之前总是将其输入格式化为字符串,无论该文件对象是标准输出(默认)还是您指定的。 这就是为什么 print(3) 不会给您类似“预期的字符串但得到 int”这样的错误的原因,就此而言,这就是为什么将该字节字符串打印到控制台不会给您类似“预期的字符串但得到字节”这样的错误的原因”

直接使用文件对象的 write() 方法:

f.write(b)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM