阅读Python请求文件

时间:2015-08-19 19:38:09

标签: python python-requests

我正在使用Requests Library来发出RESTapi请求。我可以成功地获取并从服务器接收正确的响应。我试图将GET的响应保存到文件中,以便我可以操作数据。

我没有收到错误但没有写入文件:

def download_file(url, cafile, user1, pass1, local_filename):
    # NOTE the stream=True parameter
    r = requests.get(url, 
                     stream=True,
                     auth=(user1, pass1), 
                     verify=cafile,
                     headers={'content-type':'application/xml'}
                    )
    lines = r.iter_lines()
    first_line = next(lines)
    for line in lines:
        with open(local_filename, 'w')as g:
            g.write((line)+ '/')
    return (local_filename)

2 个答案:

答案 0 :(得分:2)

通过在循环中打开文件来保持覆盖,在循环外打开一次:

  with open(local_filename, 'w')cas g:
          for line in lines:

'w'会打开一个用于写入的文件,并会截断该文件,因此您只能在文件中获得一行数据。
您可以在循环中打开a进行追加,但在循环外打开文件会更有意义。

我还会在循环中打印first_line和每一行以确切地确认返回的内容。

答案 1 :(得分:0)

只需保存回复内容:

def download_file(url, cafile, user1, pass1, local_filename): # NOTE the stream=True
    parameter r = requests.get(url, stream=True, auth=(user1, pass1), verify=cafile,
            headers={'content-type':'application/xml'})
    with open(local_filename, 'w') as  g: 
        g.write(r.text)
    return (local_filename)