我有一个txt文件。此文件的内容是字节类型,如此
b'<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">\r\n<html xmlns="http://www.w3.org/1999/xhtml">\r\n<head>\r\n<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />\r\n<!--<META http-equiv=Page-Enter content=blendTrans(Duration=0.5)>\r\n<META http-equiv=Page-Exit content=blendTrans(Duration=0.5)> -->\r\n<title>\xba...'
如何将其翻译成
value = b'...' # txt file content
答案 0 :(得分:1)
您可以使用ast.literal_eval()
来评估字面值:
bytesobject = ast.literal_eval(filecontents)
演示:
>>> import ast
>>> foo = "b'bytes value as a literal'"
>>> type(foo)
<class 'str'>
>>> ast.literal_eval(foo)
b'bytes value as a literal'
>>> type(ast.literal_eval(foo))
<class 'bytes'>
但是,如果您只是修复错误的来源会更好,这是首先创建该文件的代码。据推测,该代码在字节值上使用str()
将数据写入文本文件,而应该以二进制模式打开文件。