跟老吕看AI 2024-05-30 14:12 采纳率: 15.4%
浏览 14
已结题

python代码编写

写一段python代码读取data.csv文件,读取url并逐条下载改文件,要求按百分比下载文件进度。
请使用以下示例数据编写以上代码。
id,url
9998989,https://www.kaggle.com/datasets/imsparsh/musicnet-dataset/download?datasetVersionNumber=1
  • 写回答

15条回答 默认 最新

  • 阿里嘎多学长 2024-05-30 14:12
    关注

    以下内容由CHATGPT及阿里嘎多学长共同生成、有用望采纳:


    要实现这个功能,你可以使用Python的csv模块来读取CSV文件,使用requests库来下载文件,并使用tqdm库来显示下载进度。以下是一段示例代码:

    import csv
    import requests
    from tqdm import tqdm
    
    # 定义下载文件的函数
    def download_file(url, filename):
        response = requests.get(url, stream=True)
        total_size = int(response.headers.get('content-length', 0))
        block_size = 1024  # 1 Kibibyte
    
        progress_bar = tqdm(total=total_size, unit='iB', unit_scale=True)
        with open(filename, 'wb') as file:
            for data in response.iter_content(block_size):
                progress_bar.update(len(data))
                file.write(data)
        progress_bar.close()
    
        if total_size != 0 and progress_bar.n != total_size:
            print("ERROR, something went wrong")
    
    # 读取CSV文件并下载文件
    def main():
        with open('data.csv', newline='') as csvfile:
            reader = csv.reader(csvfile)
            next(reader)  # 跳过标题行
            for row in reader:
                url = row[1]
                filename = url.split('/')[-1]  # 假设文件名是URL的最后一部分
                download_file(url, filename)
                print(f"Downloaded {filename}")
    
    if __name__ == "__main__":
        main()
    

    这段代码首先定义了一个download_file函数,它接受一个URL和文件名,然后使用requests库以流的方式下载文件,并使用tqdm库显示下载进度。

    然后在main函数中,代码打开data.csv文件,读取每一行,并调用download_file函数来下载文件。

    要运行这段代码,你需要安装requeststqdm库。你可以使用以下命令来安装它们:

    pip install requests tqdm
    

    请注意,示例中提供的URL是指向Kaggle的一个页面,而不是直接指向可下载的文件。你需要确保URL是指向可以直接下载的文件,否则requests.get将不会返回文件内容。

    参考资料:

    • Requests库官方文档:https://docs.python-requests.org/en/latest/
    • tqdm库官方文档:https://tqdm.github.io/

    这段代码是一个基础的实现,可能需要根据实际情况进行调整。例如,如果下载的文件非常大,你可能需要考虑如何处理网络中断或错误。此外,如果CSV文件非常大,你可能需要考虑使用更高效的文件读取和处理方法。

    评论 编辑记录

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 5月30日
  • 创建了问题 5月30日

悬赏问题

  • ¥15 请各位帮我看看是哪里出了问题
  • ¥15 vs2019的js智能提示
  • ¥15 关于#开发语言#的问题:FDTD建模问题图中代码没有报错,但是模型却变透明了
  • ¥15 uniapp的h5项目写一个抽奖动画
  • ¥15 hadoop中启动hive报错如下怎么解决
  • ¥15 如何优化QWebEngineView 加载url的速度
  • ¥15 关于#hadoop#的问题,请各位专家解答!
  • ¥15 如何批量抓取网站信息
  • ¥15 Spring Boot离线人脸识别
  • ¥15 使用Ant Design Pro vue的时候,使用环境变量的时候,构建报错是什么原因