我正在阅读配置文件。假设我最终得到了一个配置变量:
header = '\x42\x5a\x68'
我想使用startswith将其与二进制文件进行匹配。
不出所料,如果我尝试直接使用它,我会得到"TypeError startswith first arg must be bytes or a tuple of bytes, not str"
。我该如何使用这个字符串?我不希望它编码。
我必须从文件中读取字符串。如果还有其他方法可以解决这个问题,我会全力以赴。谢谢你的阅读!
答案 0 :(得分:0)
我如何使用此字符串?我不希望它被编码。
你必须。做出决定,decode
您从二进制文件获得的字符串,或encode
header
名称。你不能将这两种类型混合在一起。
请参阅python文档中的 Text Vs. Data Instead Of Unicode Vs. 8-bit ,这些类型之间的所有混合(因为它也出现在startswith
中)将导致TypeError
。