制作工具下载器 by tkinter

这是一个使用tkinter开发的简单下载器应用,允许用户输入工具包的URL并选择保存路径。虽然目前不支持视频质量选择和暂停下载,但计划在后续进行改进。文章涵盖了下载器的功能实现和exe封装过程。

前言

这是一次想 实现进度条功能 而引发的小程序开发,越做发现涉及的东西越多,本文只做简单成效实现过程的描述,优化项目以后再做补充。

目录


概述

  • 先上效果图
    开始任务
    完成
    目录文件

  • 功能介绍
    该下载器只能下载已知工具包(即将例如 QQ、python、nginx 等包文件的链接复制粘贴到那个链接 Entry 里),通过点按打开按钮,选择要存放的目录。
    视频质量下拉菜单和暂停下载功能暂未实现,有待后期补充,如有大神,请指点一二。

源代码

本程序基于 Python 3.6.6 编写,如用 3.x 版本编辑,问题应该不大,请自行解决。
后期生成 exe 程序,需要用到 PyInstaller,我用的版本是 3.3.1。

实现下载器功能

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2018/8/27 15:40
# @Author  : Nimo
# @File    : study.py
# @Software: PyCharm

import os
import urllib
import time
import requests
from tkinter import *
from tkinter.scrolledtext import ScrolledText
from PIL import Image, ImageTk
import threading
from tkinter.filedialog import askdirectory
# 这里引入的两个包是为了后期生成exe程序用,源程序测试时请注释掉这两行以及后面的相关行
import base64
from picture.bak import img as logo

class GetFile():  #下载文件
    def __init__(self, url, dir_path):
        self.url = url
        self.dir_path = dir_path
        self.filename = ""
        self.re = requests.head(self.url, allow_redirects=True)  # 运行head方法时重定向
    # url and path 有效性检查
    def _is_valid(self):
        if self.url is '':
            scrolled_text.insert(INSERT, '请输入包件链接...\n')
            scrolled_text.see(END)
            return None
        else:
            pattern = '^(https|http|ftp)://.+$'
            # pattern = '^(https|http:)//([0-9a-zA-Z]*\.[0-9a-zA-Z]*\.(com|org)/).+$'
            url_pattern = re.compile(pattern, re.S)
            result = re.search(url_pattern, self.url)
            if result is None:
                scrolled_text.insert(INSERT, '错误的链接,请重新输入...\n')
                scrolled_text.see(END)
                return None
            else:
                if self.dir_path is '':
                    scrolled_text.insert(INSERT, '请输入包件保存路径...\n')
                    scrolled_text.see(END)
                    return 
<think>嗯,用户问如何快速掌握Python自动化办公技能。首先,我需要分析用户的需求。可能用户是上班族,想要通过Python提高工作效率,节省时间。自动化办公通常涉及处理Excel、Word、PDF、邮件等任务,所以应该围绕这些应用场景来设计学习路径。 接下来,用户可能是个新手,或者有编程基础但不懂Python。所以需要从基础开始,但强调“快速掌握”,所以得推荐高效的学习方法,比如项目驱动学习,边学边练。 然后,用户可能关心学习资源,比如推荐哪些书籍、课程或者网站。另外,他们可能想知道具体要学哪些库,比如pandas、openpyxl、python-docx等,以及如何应用这些库解决实际问题。 还要考虑用户的时间安排,可能下班后学习,时间有限,所以需要分阶段学习,比如第一周学基础语法,第二周学文件处理,第三周学数据分析,第四周学实战项目。这样结构清晰,容易跟进。 另外,用户可能担心学习过程中遇到问题如何解决,是否需要社区或论坛的支持,比如Stack Overflow、知乎等。同时,可能需要提醒他们避免常见的陷阱,比如环境配置问题,或者代码调试技巧。 最后,用户可能希望得到一些实战项目建议,比如自动生成报告、批量处理Excel等,这样他们可以应用所学知识,巩固技能。还要提醒他们持续练习的重要性,以及如何构建作品集,比如用GitHub展示项目,帮助未来求职或接单。 总结下来,回答需要结构清晰,分步骤,推荐资源,实战项目,并提醒注意事项。同时,相关问题要覆盖用户可能的后续疑问,比如数据分析、PDF处理、邮件自动化、学习资源推荐和作品集构建。 </think>掌握Python自动化办公的核心路径可分为4个阶段,建议按以下步骤实践: **第一阶段:基础语法速通(3天)** ```python # 示例:用字典统计部门考勤 attendance = {'技术部': 0, '市场部': 0} with open('考勤表.txt', 'r') as f: for line in f: dept = line.split(',')[2] attendance[dept] += 1 print(f'技术部缺勤{attendance["技术部"]}次') ``` - 学习重点:变量类型、循环结构、文件读写 - 工具准备:安装Anaconda(含Jupyter Notebook) **第二阶段:办公场景专项(5天)** 1. **Excel自动化** ```python import pandas as pd df = pd.read_excel('销售数据.xlsx') df.groupby('区域')['销售额'].sum().to_excel('区域汇总.xlsx') ``` 2. **PDF处理** ```python from PyPDF2 import PdfReader reader = PdfReader("合同.pdf") print(reader.pages[0].extract_text()) # 提取第一页内容 ``` 3. **邮件自动化** ```python import smtplib server = smtplib.SMTP('smtp.qq.com', 25) server.login('your@qq.com', '授权码') server.sendmail('from@qq.com', 'to@163.com', '主题:报表') ``` **第三阶段:效率工具组合** - **RPA应用**:使用影刀RPA实现跨软件操作 - **定时任务**:Windows任务计划器执行Python脚本 - **GUI界面**:tkinter制作简易操作界面 ```python import tkinter as tk window = tk.Tk() window.title('自动化工具') tk.Label(window, text='输入文件路径:').pack() ``` **第四阶段:实战项目(2周)** 1. **日报生成器**:自动抓取数据库数据生成Word报告 2. **发票识别系统**:OCR识别发票信息并分类存储 3. **会议助手**:自动下载邮件附件+提取会议纪要 4. **数据看板**:爬取行业数据生成动态可视化图表 **学习资源推荐:** - 书籍:《Python自动化办公:从小白到高手》 - 网站:菜鸟教程(语法速查)、Real Python(案例库) - 工具:GitHub代码片段库、Stack Overflow问题检索 **避坑指南:** 1. 环境配置:使用虚拟环境(conda create -n office python=3.9) 2. 异常处理:添加try-except块防止程序崩溃 ```python try: df = pd.read_excel('数据.xlsx') except FileNotFoundError: print('请确认文件路径') ``` 3. 代码调试:使用print()或PyCharm断点调试 **进阶方向:** - 学习正则表达式(处理复杂文本) - 掌握API调用(如企业微信机器人) - 研究自动化审批流程(结合钉钉/飞书)
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值