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

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 stc15f2k60s2单片机关于流水灯,时钟,定时器,矩阵键盘等方面的综合问题
  • ¥15 YOLOv8已有一个初步的检测模型,想利用这个模型对新的图片进行自动标注,生成labellmg可以识别的数据,再手动修改。如何操作?
  • ¥30 NIRfast软件使用指导
  • ¥20 matlab仿真问题,求功率谱密度
  • ¥15 求micropython modbus-RTU 从机的代码或库?
  • ¥15 django5安装失败
  • ¥15 Java与Hbase相关问题
  • ¥15 后缀 crn 游戏文件提取资源
  • ¥20 bash代码推送不上去 git fetch origin master #失败了
  • ¥15 LOL外服加入了反作弊系统,现在游戏录像rofl文件离线都无法打开