繁体   English   中英

从响应中保存unicode文本,而无需编码为文件

[英]Save unicode text from response without encoding into file

我想通过网络抓取从路由器下载配置文件。 我要实现的过程是这样的:

  1. 将配置文件保存到磁盘
  2. 发送恢复出厂设置
  3. 加载先前下载的配置文件。

到目前为止,我有以下代码:

with requests.Session() as s:  # To login into the modem
    pagePostBackUp = 'https://192.168.1.1/goform/BackUp'
    s.post(urlLogin, data=loginCredentials, verify=False, timeout=5)
    dataBackUp = {'dir': 'admin/','file': 'cmconfig.cfg'}
    resultBackUp = s.post(pagePostBackUp, data=dataBackUp, verify=False, timeout=10)
    print(resultBackUp.text)

最后一行是我要保存到文件中的内容。 但是,当我尝试使用以下代码进行操作时:

f = open('/Users/user/Desktop/file.cfg', 'w')

引发错误,ASCII编解码器无法编码字符。 如果我使用例如encode ='utf16'保存文件,则与我最初手动下载的文件不同。

因此,问题是,如何使用路由器通过网络给我的相同编码保存该文件? (作为unicode)。 该文件的内容如下所示:

pqJ U \\ V,.o / zf v 〜W3 =,gg m d}; ytLcJ

将代码的最后一行更改为以下内容:

    with open('/Users/user/Desktop/file.cfg', 'wb') as f:
        f.write(resultBackUp.content)

这会将有效载荷视为数据( bytes ),而不是文本:文件以二进制模式打开,内容按原样使用。 没有编码/解码发生。

暂无
暂无

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

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