当前位置: 首页 > 知识库问答 >
问题:

Python请求-下载进度条

竺国兴
2023-03-14

我向服务器发出POST请求以生成CSV文件,POST请求的响应是我要写入文件的CSV数据。

我永远不知道CSV文件的大小(它可以是10MB,100MB或1000MB),因此没有内容长度的头。

我已经编写了一个函数,可以下载并向服务器发出POST请求,生成CSV文件并将响应写入CSV文件。然而,我正在努力与进步吧。

如何添加进度条?

r = requests.post(URL, data, stream=True)
#Download progress here

共有1个答案

贺宝
2023-03-14
def download_file(url, local_path="./"):
    local_filename = url.split('/')[-1]
    path = local_path + local_filename

    r = requests.get(url, stream=True)
    total_size = int(r.headers.get('content-length', 0))

    with open(local_filename, 'wb') as f:
        for chunk in tqdm(r.iter_content(32*1024), total=total_size,unit='B', unit_scale=True):
            if chunk:
                f.write(chunk)

    return path
 类似资料:
  • 问题内容: 我正在创建一个更新程序,该更新程序使用Node模块下载应用程序文件。如何估算剩余文件大小?这是我的代码的一部分: 问题答案: 这应该为您提供所需的总数: 我得到的内容长度为

  • 问题内容: 我正在下载文件,但是对于大文件,我每次都需要检查磁盘上文件的大小,因为我无法以百分比形式显示进度,并且我也想知道下载速度。我该怎么做呢?这是我的代码: 我认为一种方法是在循环中每次读取文件并根据标头计算进度百分比。但是对于大文件(大约500MB),这将再次成为问题。还有其他方法吗? 问题答案: 参见此处:Python进度栏和下载 我认为代码将是这样,它应该显示 自开始以来 的 平均速度

  • 问题内容: 这是我的代码: 这使我可以访问csv文件。我尝试了其他方法来处理下载: 这将给csv文件一个字符串: 这将打印第一行并返回错误:_csv.Error:在未引用的字段中看到换行符 这将在每行中打印一个字母,并且不会打印出整个内容: 我的问题是:在这种情况下读取CSV文件的最有效方法是什么。以及如何下载。 谢谢 问题答案: 这应该有助于: 输出样本: 答案相关的问题: 使用此功能将csv加

  • 我需要下载一个相当大的(~200MB)文件。我在这里找到了下载和保存文件的方法。如果有一个进度条来知道下载了多少,那就太好了。我找到ProgressBar,但我不知道如何将两者结合起来。 这是我试过的代码,但不起作用。

  • 我正在尝试制作一个GUI,用户点击一个按钮,应用程序就会从互联网下载一个文件。我想要一个进度条,显示文件下载完成的时间。为了实现这一点,我实现了一个线程,在点击下载按钮时运行进度条的功能。以下是我使用的代码: 当我运行应用程序时,它会下载文件,不会出现错误。但是进度条什么也做不了。我试着使用和,但进度条仍不工作。 如何让progressbar显示文件的下载进度?

  • fetch 方法允许去跟踪 下载 进度。 请注意:到目前为止,fetch 方法无法跟踪 上传 进度。对于这个目的,请使用 XMLHttpRequest,我们在后面章节会讲到。 要跟踪下载进度,我们可以使用 response.body 属性。它是 ReadableStream —— 一个特殊的对象,它可以逐块(chunk)提供 body。在 Streams API 规范中有对 ReadableStr