Posted in Python onDecember 27, 2019
这篇文章主要介绍了python3获取文件中url内容并下载代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
#!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2019-12-25 11:33 # @Author : Anthony # @Email : ianghont7@163.com # @File : get_video_audio_file.py import xlrd as xl import requests # 创建文件夹 def mkdir_floder(path): import os isExists = os.path.exists(path) if not isExists: os.makedirs(path) # print(path + ' 创建成功') return True else: # 如果目录存在则不创建,并提示目录已存在 # print(path + ' 目录已存在') return False def request_floder(floder01,floder02,filename,url,types): # 拼接全路径 all_path = basedirpath+floder01+'/'+floder02+'/' res = requests.get(url.strip()) music = res.content with open(all_path+filename+'.'+types, 'ab') as file: # 保存到本地的文件名 file.write(music) file.flush() def get_xls(filename): # 打开文件 xls_file=xl.open_workbook(filename) # 获取第一个sheet内容 xls_sheet=xls_file.sheets()[0] # 总行数 line_nums = xls_sheet.nrows for i in range(0,line_nums): # 获取每一行的内容 row_value = xls_sheet.row_values(i) # 获取第一级目录名称 folder1 = row_value[0] # 获取第二级目录名称 folder2 = row_value[1] # 获取文件名 file_name = row_value[2] # 获取url内容 url = row_value[3] # 创建目录 mkdir_floder(basedirpath+folder1+'/'+folder2) # 转换url的类型为dict url = eval(url) # 获取视频内容 if "audio" in url: if url["audioF"].strip() != "": audio_url = url["audioF"] audio_url_end = audio_url.split('.')[-1] print(audio_url) request_floder(folder1, folder2, file_name, audio_url, audio_url_end) elif url["audio"].strip() != "": audio_url = url["audio"] audio_url_end = audio_url.split('.')[-1] print(audio_url) request_floder(folder1, folder2, file_name, audio_url, audio_url_end) # 获取音频内容 elif "video" in url: if url["video"].strip() != "": video_file = url["video"] video_file_end = video_file.split('.')[-1] print(video_file) request_floder(folder1, folder2, file_name, video_file, video_file_end) if __name__ == "__main__": # 文件存放路径 basedirpath = "/Users/ianthony/Desktop/Devops/" # 读取的xlsx文件 get_xls("001.xlsx")
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。
python3获取文件中url内容并下载代码实例
- Author -
Done、声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。
Reply on: @reply_date@
@reply_contents@