zoukankan      html  css  js  c++  java
  • 批量下载Excel中的链接中的文件

    前几天有一个小任务,就是把一个Excel中的三百多个音频下载下来,这些音频都是URL的形式,于是就写了个python脚本把他们都抓了下来,因为很简单,所以就直接贴代码了:

    注意:首先要把Excel转换成CSV文件的格式

    import csv
    import requests
    
    # 文件路径,需要替换成自己的文件路径
    file_rode = 'C:\Users\59990\Desktop\audio.csv'
    # 打开文件
    csv_file = csv.reader(open(file_rode, 'r', encoding='utf-8'))
    # 跳过标题行
    next(csv_file, None)
    
    # 可以先用下面注释里的语句看看你文件中的URL取出来之后是什么格式的
    # for url in csv_file:
    #     print(url)
    
    # 接着对里边的每一条链接做如下操作
    for url in csv_file:
        # 这里需要注意的是要将取出来的URL做一个字符串类型转换,并截取其中的link的部分
        r = requests.get(str(url)[2:101])
        music = r.content
        # 目标路径需要换成你自己的路径,str(url)[90:-2]这个的意思是给文件命名
        new_url = "C:/Users/59990/Desktop/music/" + str(url)[90:-2]
        # 下面是将文件以二进制的形式写入到目标文件中
        with open(new_url, 'ab') as file:
            file.write(music)
            file.flush
    

    总结:这次虽然是一个很简单的小脚本,但是对其中的字符串的转换那里搞了很大一会,从csv中直接读出来的数据好像不是以字符串的形式。直到现在我才明白过来,是我读取的方式不对,我那种方法是直接读取了整个csv,正确的方法应该是读取csv中的我需要的那一列,改进后的方法如下

    import csv
    import requests
    
    # 文件路径,需要替换成自己的文件路径
    file_rode = 'C:\Users\59990\Desktop\audio.csv'
    
    # 打开文件
    csv_file = csv.reader(open(file_rode, 'r', encoding='utf-8'))
    # 跳过标题行
    next(csv_file, None)
    
    # 可以先用下面注释里的语句看看你文件中的URL取出来之后是什么格式的
    # for url in csv_file:
    #     print(url)
    
    # 接着对里边的每一条链接做如下操作
    for url in csv_file:
        # 这里就直接是url[0],意思是csv中的第一列的内容,不再是以表格的形式给到
        r = requests.get(url[0])
        music = r.content
        # 目标路径需要换成你自己的路径,str(url)[90:-2]这个的意思是给文件命名
        new_url = "C:/Users/59990/Desktop/music/" + str(url)[90:-2]
        # 下面是将文件以二进制的形式写入到目标文件中
        with open(new_url, 'ab') as file:
            file.write(music)
            file.flush
    
  • 相关阅读:
    什么是守护线程?
    如何优雅地停止一个线程?
    如何创建、启动 Java 线程?
    什么是线程?什么是进程?为什么要有线程?有什么关系与区别?
    并行是什么意思?与并发的区别是什么?
    并发编程的缺点?
    BZOJ_3058_四叶草魔杖_kruscal+状压DP
    BZOJ_3476_[Usaco2014 Mar]The Lazy Cow_扫描线+切比雪夫距离
    BZOJ_1511_[POI2006]OKR-Periods of Words_KMP
    BZOJ_3479_[Usaco2014 Mar]Watering the Fields_Prim
  • 原文地址:https://www.cnblogs.com/mqjing/p/13629288.html
Copyright © 2011-2022 走看看