【发布时间】:2016-01-15 15:59:19
【问题描述】:
我有一个使用requests.get()获取的torrent文件,存储在一个字符串中,如下所示:
import requests
headers = {'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11',
'Accept-Charset': 'utf-8',
'Connection': 'keep-alive'}
request = requests.get(url, headers=headers)
data = requests.text
我想将其写入二进制文件,以便其中的数据正确且有效:
with open(name, "wb") as f:
f.write(data)
但是我似乎无法将字符串写为纯二进制数据,因为 python 一直试图将其解释为 Unicode,我收到如下错误:"UnicodeEncodeError: 'ascii' codec can't encode characters in position 3-9: ordinal not in range (128)。
我曾尝试使用 bytearray 但出现类似问题:TypeError: unicode argument without an encoding。
有没有办法将字符串中的字节原样写入文件?
【问题讨论】:
-
您是在
binary 模式下打开文件吗? -
添加你正在使用的代码
标签: python python-2.7 unicode python-requests binaryfiles