Python小程序编程实现一键自动整理文件解压文件

目录
  • 前言
  • 一、小程序构建思路
    • 1.需求
    • 2.技术
  • 二、编程实现
    • 1.引入库
    • 2.窗口调整
    • 3.选择目录

前言

什么是效率?简单就是效率!但是想要自己做的小程序足够美观可不是一件简单的事。一开始想做个小程序思路就是有个普通的button,一键使用就好了。但是写下来还是发现没用前端和结构话的编程后期维护很麻烦,所以以后的程序格式都应该尽量符合业界规范。世界上那么多种解决问题的方法,为什么大家都认可那么一两钟?肯定是有他的道理的。好了废话不多说,现在开始设计我们的小程序。

一、小程序构建思路

1.需求

首先我们先确定需求:

我们需要一个可以选择目录,自动处理该目录下面的文件。我们知道文件它是有类型的,而我们可以通过文件的后缀名称来分类。其中有txt、json、pdf、word等。

第二个需求能够选中解压文件并且判断该文件是否为压缩文件,是压缩文件则进行解压。

以上就是我们写这个小程序的目的。

2.技术

首先我们肯定Python进行编程,需要用到其他的库。其中我们需要一个界面可以进行交互。该界面可以选择我们的功能模式。还有一个选择目录的功能,能够将目录路径读取并且显示。那么我们先从界面来考虑,既然是小程序那就设计成窗口的样子。

第一个技术依赖:Python tkinter

该库Tkinter 模块(Tk 接口)是 Python 的标准 Tk GUI 工具包的接口 .Tk 和 Tkinter 可以在大多数的 Unix 平台下使用,同样可以应用在 Windows 和 Macintosh 系统里。Tk8.0 的后续版本可以实现本地窗口风格,并良好地运行在绝大多数平台中。 直接安装该库即可:

pip install tkinter

第二个技术依赖:os库、shutil

shutil是 篇python 中的高级文件操作模块,与os模块形成互补的关系,os主要提供了文件或文件夹的新建、删除、查看等方法,还提供了对文件以及目录的路径操作。shutil模块提供了移动、复制、 压缩、解压等操作,恰好与os互补,共同一起使用,基本能完成所有文件的操作。是一个非常重要的模块。

这些库都是python自带标准库里面自带的,直接引入就行。

第三个技术依赖: zipfile

zipfile是python里用来做zip格式编码的压缩和解压缩的,由于是很常见的zip格式,所以这个模块使用频率也是比较高的。也是自带的库,调用就好。

二、编程实现

1.引入库

from tkinter import *
import os
from tkinter.filedialog import askdirectory
from tkinter.filedialog import askopenfilename
from tkinter import messagebox
import shutil
import zipfile

2.窗口调整

首先创建出一个界面,我们需要定义该界面窗口的长和宽,以及窗口名称和窗口展示位置:

app=Tk()
app_w=app.winfo_screenwidth()
app_h=app.winfo_height()
width=350
heigh=260
x=(app_w-width)/2
y=(app_h-heigh)/2
app.geometry('350x260+600+300')
#app.geometry("%dx%d+%d+%d" % (width,heigh,x,y))
app.title("文件助手")

之后我们要把获取的路径显示出来:

Label(app,text='picture',image=photo).pack()
Label(app,text='文件助手',font={'Airal',20,'bold'}).place(x=140,y=1,anchor='nw')
lable_path=Label(app,name='path')
lable_path.place(x=85,y=90,anchor='nw')
f_name=''

3.选择目录

选择目录后,保存目录的路径

def select_dir():
    global f_name
    f_name = askdirectory()
    lable_path['text']=f_name

获取文件目录和文件名称,创建目标目录,并把统一类别文件移动到该目录:

def clean(f):
    forder_name = f_name + '/' + f.split('.')[-1]
    file_name = f_name + '/' + f
    if not os.path.exists(forder_name):
        os.makedirs(forder_name)
    elif os.path.exists(forder_name + '/' + f):
        return
    else:
        shutil.move(file_name,forder_name)

根据文件的后缀进行归类:

def sort():
    count=0
    for f in os.listdir(f_name):
        if '.' in f:
            clean(f)
            count += 1
    messagebox.showinfo(title='提示',message='你已经成功整理了%d个文件'%count)

最后我们来设计解压缩功能,这里先对文件进行判断是否为压缩文件,之后进行解压到该目录:

def unzip_file():
    zip_name = askopenfilename()#压缩包名
    r = zipfile.is_zipfile(zip_name)
    if r:
        fz = zipfile.ZipFile(zip_name)
        for file in fz.namelist():
            print(file)
            fz.extract(file, f_name)
        messagebox.showinfo(title='提示', message='已解压该文件')
    else:
        messagebox.showinfo(title='提示', message='这不是压缩文件')

最后我们再给我们的窗口设定按钮接口:

bt1=Button(app,text='选择目录',command=select_dir)
bt1.place(x=50,y=170,anchor='nw')
bt1=Button(app,text='整理文件',command=sort)
bt1.place(x=145,y=170,anchor='nw')
bt1=Button(app,text='解压文件',command=unzip_file)
bt1.place(x=235,y=170,anchor='nw')
app.mainloop()

大家还可以插入自己想要的图片,更加美观:

选择目录后自动保存路径显示:

我们可以进行测试,在测试目录下创建不同类型的文件:

选择目录分类:

效果:

以上就是Python小程序编程实现一键自动整理文件解压文件的详细内容,更多关于Python自动整理解压文件的资料请关注我们其它相关文章!

(0)

相关推荐

  • Python跨文件调用函数以及在一个文件中执行另一个文件

    目录 一.项目简介 二.调用类型 1.调用同文件中的函数 2.调用同目录下不同文件中的函数 3.调用同级文件夹文件中的函数 4.调用上一级文件夹文件中的函数 5.调用上一级文件夹子文件夹下文件中的函数 6.执行另一个文件 三.概念区分 总结 一.项目简介 假如现在有这样一个文件树(从其他地方copy的,稍加整改) A   |-------- __init__.py   |-------- a.py   |-------- main.py   |-------- B         |------

  • 如何利用Python将html转为pdf、word文件

    目录 前言 转 pdf 安装 pdfkit 库 安装 wkhtmltopdf 文件 url 生成 pdf 本地 html 文件生成 pdf 转 word 安装 pypandoc 库 安装 pandoc 软件 使用 补充:用python把pdf文件转换为word文件 总结 前言 在日常中有时需将 html 文件转换为 pdf.word 文件.网上免费的大多数不支持多个文件转换的情况,而且在转换几个后就开始收费了. 转 pdf 转 pdf 中使用 pdfkit 库,它可以让 web 网页直接转为 p

  • python如何将文件a.txt的内容复制到b.txt中

    目录 python将a.txt的内容复制到b.txt 中 python合并多个txt中的内容到一个txt中 总结 python将a.txt的内容复制到b.txt 中 # 1. 用r方式打开a.txt f = open("a.txt","r") # 2. 读取a.txt的内容 buf = f.read() # 3. 关闭a.txt f.close # 4. 用w或者a的方式打开b.txt f = open("b.txt","w"

  • Python下载ts文件视频且合并的操作方法

    目录 一.ts文件的由来 二.下载ts文件 1.下载index.m3u8,并做相应处理 2.下载ts文件 三.合并ts文件 参考文章: 一.ts文件的由来 ts文件,ts即"Transport Stream"的缩写,特点就是要求从视频流的任一片段开始都是可以独立解码的,非常适合网络视频播放. 打开网址:https://www.kan35.com/play/210314-3-1.html,要怎么才能把这个视频下载到电脑上呢? 按F12发现,这些视频被切割成无数个细小的片断,如图: 上图中

  • Python实现身份证前六位地区码对照表文件

    目录 一.身份证json数据文件 二.python 读取json源码 1.生成了身份证前六位地区码对照表JSON文件 2.python 读取JSON文件 提取码[3297] json文件下载 废话不多说,先上效果图 一.身份证json数据文件 先去百度搜索地区身份证号码前6位查询 ,然后进入网站控制台界面,复制下方的数据,并保存到[1.txt]文件内 然后我们新疆一个py文件,用来处理数据,源码如下:就不一一讲解了 import json import re G = {} F = open('2

  • Python脚本实现一键自动整理办公文件

    目录 导语: 1.准备 2.原理 3.自定义整理 导语: 举例:Python做一个根据后缀名整理文件的工具,先来看看效果: 自动整理前: 自动整理后: 这样看起来就好很多了. 1.准备 开始之前,你要确保Python和pip已经成功安装在电脑上,如果没有,可以访问这篇文章:python Windows最新版本安装教程 我们只需要修改源代码主程序中调用 auto_organize函数的参数即可完成对对应文件夹的整理,比如我想整理  C:\Users\83493\Downloads 文件夹: if

  • Python小程序之在图片上加入数字的代码

    在GitHub上发现一些很有意思的项目,由于本人作为Python的初学者,编程代码能力相对薄弱,为了加强Python的学习,特此利用前辈们的学习知识成果,自己去亲自实现. 来源:GitHub Python练手小程序项目地址:https://github.com/Show-Me-the-Code/python 写作日期:2019.11.24 今天练习的小程序,是其中第0000题,题目如下: 将你的 QQ 头像(或者微博头像)右上角加上红色的数字,类似于微信未读信息数量那种提示效果. 如下图中的效果

  • 有趣的python小程序分享

    python可以简单优美,也很有趣,下面是收集的例子: 1.一句话开始一个http的文件服务器: $ python -m SimpleHTTPServer Serving HTTP on 0.0.0.0 port 8000 ... 在浏览器中就可以http://localhost:8000访问目录及文件了. 也可以直接指定端口: $ python -m SimpleHTTPServer 6666 如果想在代码中实现,也很简单: import SimpleHTTPServer import Soc

  • Python小程序 控制鼠标循环点击代码实例

    这篇文章主要介绍了Python小程序 控制鼠标循环点击代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 from ctypes import * import pyautogui import time time.sleep(5) while 1: pyautogui.click(400, 400, clicks=1, interval=0.0, button='left') time.sleep(10) Note: 坐标(400,400

  • 一个可以套路别人的python小程序实例代码

    先简要介绍一下程序. 程序是使用pycharm工具,python语言所写.程序包括客户端 client.py 和服务器端 server.py 两部分,利用了python中的socket包. 咳咳,使用方法来了! 首先,你需要你和你的朋友在同一个局域网内,然后在你的主机上,运行服务器端 server.py. 然后,让你的朋友在他的电脑上运行客户端 client.py. 此时你朋友电脑的windows用户密码,就会变成一个随机密码,且这个生成的随机密码他本人无法得知,而是把这个密码通过socket传

  • 微信小程序实现的一键拨号功能示例

    本文实例讲述了微信小程序实现的一键拨号功能.分享给大家供大家参考,具体如下: 1. 在.wxml文件中绑定拨号事件 <button type="default" bindtap="calling">拨打电话</button> 2. 在.js文件中加入逻辑代码 calling: function () { wx.makePhoneCall({ phoneNumber: '***************', success: function (

  • 微信小程序实现的一键连接wifi功能示例

    本文实例讲述了微信小程序实现的一键连接wifi功能.分享给大家供大家参考,具体如下: 在已知wifi账号和wifi密码的情况下,一般采用以下的流程来连接wifi Wi-Fi 接口调用: 1.Android: startWifi -> connectWifi -> onWifiConnected 2.iOS(仅iOS 11及以上版本支持): startWifi -> connectWifi -> onWifiConnected 操作步骤如下: 1.获取手机的型号: connectWi

  • 微信小程序实现的一键复制功能示例

    本文实例讲述了微信小程序实现的一键复制功能.分享给大家供大家参考,具体如下: 微信小程序不支持页面复制功能,故要实现某些信息的复制,需要开发复制功能 微信小程序中复制一般采用调用  wx.setClipboardData 接口 实现功能如下: 1,.wxml里写一个复制按钮 <button bindtap="copy"> 一键复制 </button> 2, .js里写复制功能 copy: function (e) { var that = this; wx.se

  • python小程序基于Jupyter实现天气查询的方法

    天气查询python小程序第0步:导入工具库第一步:生成查询天气的url链接第二步:访问url链接,解析服务器返回的json数据,变成python的字典数据第三步:对字典进行索引,获取气温.风速.风向等天气信息第四步:遍历forecast列表中的五个元素,打印天气信息完整Python代码 本案例是一个非常有趣的python小程序,调用网络API查询指定城市的天气,并打印输出天气信息. 你将学到以下技能: 向网络API发起请求,解析和处理服务器返回的json数据,可以迁移到各种各样的API中,如P

  • 微信小程序整个页面的自动适应布局的实现

    按比例适应布局 大家有没有过一个烦恼,就是让某个view的高度或者宽度扩大点,而且是要按比例适应不同的手机,遇到这类问题应该怎么办? 下面就为大家讲解怎么做一个能够自动适应不同手机的布局 1.像素单位 rpx 首先,我们来说说像素单位rpx,rpx是官方为小程序出的尺寸单位rpx(responsive pixel),它可以根据屏幕宽度进行自适应.规定屏幕宽度为750rpx.所以平常我们应该尽量使用rpx来代替px 2.容器view的宽高使用百分百的方式 其次,我们来说说容器view的宽高应该尽量

随机推荐