如何利用Python代码优雅的进行文件下载

如何利用Python代码优雅的进行文件下载

欢迎学习交流!
邮箱: z...@1...6.com
网站: https://zephyrhours.github.io/

一、什么是wget?

wget 是一个从网络上自动下载文件的免费工具,支持通过 HTTP、HTTPS、FTP 三个最常见的 TCP/IP协议 下载,并可以使用 HTTP 代理。"wget" 这个名称来源于 "World Wide Web" 与 "get" 的结合。所谓自动下载,是指 wget 可以在用户退出系统的之后在继续后台执行,直到下载任务完成。

通过这个软件/代码,可以在window下非常优雅的实现通过简单的命令进行数据或代码的下载,下面笔者提供两种非常简单的使用方法,供有需求的小伙伴参考。

二、使用wget.exe客户端进行文件下载

  1. 通过wget软件进行数据下载:该软件的下载地址:https://eternallybored.org/misc/wget/

  2. 软件安装:将下载的wget.exe程序放到系统目录C:\Windows\System32下即可

  3. 软件使用:打开运行命令窗口,在其中输入wget --help,可以查到相关的使用说明,具体如下:

  4. 下载数据:下载格式很简单,具体格式为wget 下载文件地址即可,具体如下:

三、使用Python脚本进行文件下载

通过python脚本进行文件下载之前,需要先安装wget库,具体安装命令为:

python 复制代码
$ pip install wget  
$ conda install wegt

根据自己使用python的base环境,选择其一命令即可。

之后就是本文的重点了,利用python脚本进行文件下载才是我们的初衷,具体代码如下:

python 复制代码
r"""
Author: Zephyr Hou
Time: 2023-08-31
"""

import wget
# 文件下载地址,这里下载格式不限
url = 'http://www.robots.ox.ac.uk/~qwang/SiamMask_DAVIS.pth'

# 自定义进度条
def bar_custom(current, total, width=80):
    output = f"[*] Downloading: {current / 1024 ** 2:.2f} MB / {total / 1024 ** 2:.2f} MB]"
    return output

# 从下载地址中获取文件名称
filename = wget.filename_from_url(url)

# 文件下载
print("Downloading started: " + filename)
file_name = wget.download(url, out=filename, bar=bar_custom)
print("\n Downloading Completed: " + filename)

具体下载效果如下:

相比于浏览器中某些文件的下载,此代码下载速度略快,最重要的是可以实现非常优雅的文件批量下载~

试想一下: 你在图书馆或咖啡厅,正在使用该代码非常优雅的进行文件下载,然后被隔壁的小姐姐看到后,她是不是瞬间就会上头呢,然后心里惊叹到:我去,这个人好NB啊,太厉害了,不行我要去跟他要WX...,这样你就又离脱单更近了一步~

相关推荐
好家伙VCC1 天前
### WebRTC技术:实时通信的革新与实现####webRTC(Web Real-TimeComm
java·前端·python·webrtc
前端玖耀里1 天前
如何使用python的boto库和SES发送电子邮件?
python
serve the people1 天前
python环境搭建 (十二) pydantic和pydantic-settings类型验证与解析
java·网络·python
小天源1 天前
Error 1053 Error 1067 服务“启动后立即停止” Java / Python 程序无法后台运行 windows nssm注册器下载与报错处理
开发语言·windows·python·nssm·error 1053·error 1067
喵手1 天前
Python爬虫实战:HTTP缓存系统深度实战 — ETag、Last-Modified与requests-cache完全指南(附SQLite持久化存储)!
爬虫·python·爬虫实战·http缓存·etag·零基础python爬虫教学·requests-cache
喵手1 天前
Python爬虫实战:容器化与定时调度实战 - Docker + Cron + 日志轮转 + 失败重试完整方案(附CSV导出 + SQLite持久化存储)!
爬虫·python·爬虫实战·容器化·零基础python爬虫教学·csv导出·定时调度
2601_949146531 天前
Python语音通知接口接入教程:开发者快速集成AI语音API的脚本实现
人工智能·python·语音识别
寻梦csdn1 天前
pycharm+miniconda兼容问题
ide·python·pycharm·conda
Java面试题总结1 天前
基于 Java 的 PDF 文本水印实现方案(iText7 示例)
java·python·pdf
不懒不懒1 天前
【决策树算法实战指南:从原理到Python实现】
python·决策树·id3·c4.5·catr