一篇文章教你用Python实现一键文件重命名

目录
  • 应用背景
  • 准备工作
    • 上脚本
    • view.py
  • 功能展示
  • 打包方式
    • windows打包方式:pycharm打包为exe执行文件方法
  • 总结

应用背景

背景:“由于工作需要可能需要对一些文件进行重命名的处理,但是可能操作起来比较烦,点错了就命名失败或者没带鼠标,用控制板操作起来比较麻烦等等场景”

ps:以上都是200自我觉得比较烦,所以才出了这个小功能~

好了,此版本是基于上次文章的版本进行更新,(❕这次对上次的代码进行了更新,下文不会进行补充了哦,详细可以查看github上的源代码)详细看下文喽~

传送门:【连载实战篇】文件处理工具01-获取文件名到文本

更新需求:新增生成文件的自定义结果名称

​ 新增生成文件的文件类型,暂时xls,和xlsx的还未进行补充,这部分之后会进行完善,敬请期待哦~

准备工作

看上文安装python即可,传送门在👆哦

上脚本

view.py

# 创建子容器
container_rename = tk.LabelFrame(width=1200, height=800, text="重命名文件", font=24)
container_rename.grid(row=17, column=0, padx=5, pady=5)
# 选择重命名文件夹
label_rename = tk.Label(container_rename, text="选择重命名的文件夹", font=30, width=15)
var_rename = tk.StringVar()
# 文本属性textvariable  可变文本,与StringVar等配合着用
label_rename_file = tk.Entry(container_rename, textvariable=var_rename, font=(30), width=75)
# 设置输入目录 command: 指定按钮消息的回调函数;
btn_label_rename = tk.Button(container_rename, text="设置输入目录", font=(30),
                           command=lambda: set_directory(var_rename))
var_rename.set('')
# 格式排版
label_rename.grid(row=18, column=0, padx=5, pady=5)
label_rename_file.grid(row=18, column=1, padx=5, pady=5)
btn_label_rename.grid(row=18, column=2, padx=5, pady=5)
# 重命名文件夹
label_rename_doc = tk.Label(container_rename, text="重命名的文件夹", font=30, width=15)
var_rename_doc_name = tk.StringVar()
# 文本属性textvariable  可变文本,与StringVar等配合着用
label_rename_doc_name = tk.Entry(container_rename, textvariable=var_rename_doc_name, font=(30), width=75)
# 设置输入目录 command: 指定按钮消息的回调函数;
btn_label_rename_doc = tk.Button(container_rename, text="重命名文件夹", font=(30),
                           command=lambda: set_doc_name(var_rename, var_rename_doc_name))
var_rename_doc_name.set('')
# 格式排版
label_rename_doc.grid(row=19, column=0, padx=5, pady=5)
label_rename_doc_name.grid(row=19, column=1, padx=5, pady=5)
btn_label_rename_doc.grid(row=19, column=2, padx=5, pady=5)

# 选择重命名文件
label_rename_filename = tk.Label(container_rename, text="选择重命名的文件", font=30, width=15)
var_rename_file = tk.StringVar()
# 文本属性textvariable  可变文本,与StringVar等配合着用
label_rename_file_name = tk.Entry(container_rename, textvariable=var_rename_file, font=(30), width=75)
# 设置输入目录 command: 指定按钮消息的回调函数;
btn_label_rename_file = tk.Button(container_rename, text="设置输入文件", font=(30),
                           command=lambda: set_file(var_rename_file))
var_rename_file.set('')
# 格式排版
label_rename_filename.grid(row=20, column=0, padx=5, pady=5)
label_rename_file_name.grid(row=20, column=1, padx=5, pady=5)
btn_label_rename_file.grid(row=20, column=2, padx=5, pady=5)
# 重命名文件
label_rename_files = tk.Label(container_rename, text="重命名的文件", font=30, width=15)
var_rename_files_name = tk.StringVar()
# 文本属性textvariable  可变文本,与StringVar等配合着用
label_rename_files_name = tk.Entry(container_rename, textvariable=var_rename_files_name, font=(30), width=75)
# 设置输入目录 command: 指定按钮消息的回调函数;
btn_label_rename_files = tk.Button(container_rename, text="重命名文件", font=(30),
                           command=lambda: set_file_name(var_rename_file, var_rename_files_name))
var_rename_files_name.set('')
# 格式排版
label_rename_files.grid(row=21, column=0, padx=5, pady=5)
label_rename_files_name.grid(row=21, column=1, padx=5, pady=5)
btn_label_rename_files.grid(row=21, column=2, padx=5, pady=5)

Method.py

# 处理文件夹重命名方法def name_handling(old, new):    old_path = old.get()    old_arr = old_path.split("/")    name = old_arr[-1]    file_type = name.split('.')    file_path = old_path[:old_path.index(name)]    if len(file_type) > 1:        new_path = str(file_path + new.get() + '.' + file_type[1]).encode()        os.rename(old_path, new_path)    else:        new_path = str(file_path + new.get()).encode()        os.renames(old_path, new_path)
# 处理文件夹重命名方法
def name_handling(old, new):
    old_path = old.get()
    old_arr = old_path.split("/")
    name = old_arr[-1]
    file_type = name.split('.')
    file_path = old_path[:old_path.index(name)]
    if len(file_type) > 1:
        new_path = str(file_path + new.get() + '.' + file_type[1]).encode()
        os.rename(old_path, new_path)
    else:
        new_path = str(file_path + new.get()).encode()
        os.renames(old_path, new_path)

Control.py

# 处理重命名文件夹命名
def set_doc_name(old, new):
    if old.get() == '' or new.get() == '':
        msg_box("未选择重命名文件或未填写修改文件夹名称!")
    else:
        name_handling(old, new)
        msg_box("重命名成功")
        clear(old, new)

# 处理重命名文件
def set_file_name(old, new):
    if old.get() == '' or new.get() == '':
        msg_box("未选择重命名文件或未填写修改文件夹名称!")
    else:
        name_handling(old, new)
        msg_box("重命名成功")
        clear(old, new)

Common.py

# 多参数处理
def clear(*args):
    for arg in args:
        arg.set('')

File_tk.py

# 获取文件路径
def set_file(arg):
    file_name = tk_fld.askopenfilename()
    arg.set(file_name)
# 设置目录
def set_directory(arg):
    set_path = tk_fld.askdirectory()
    arg.set(set_path)

# 提示窗口
def msg_box(arg):
    messagebox.showinfo("提示窗口", arg)

功能展示

⚠️新增功能已标注哦!

文件同理哦,这里就不过多展示了

打包方式

windows打包方式:pycharm打包为exe执行文件方法

1.在PyCharm下安装pyinstaller

pip install Pyinstaller

2.在Terminal下输入:“pyinstaller -F -w *.py” 就可以制作出exe。生成的文件放在同目录dist下。

-F(注意大写)是所有库文件打包成一个exe,-w是不出黑色控制台窗口。

不加-F参数生成一堆文件,但运行快。压缩后比单个exe文件还小一点点。
加-F参数生成一个exe文件,运行起来慢。

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注我们的更多内容!

(0)

相关推荐

  • Python基于mediainfo批量重命名图片文件

    案例故事: 大部分带彩色屏幕的终端设备,不管是手机,车机,电视等等,都需要涉及图片的显示, 作为一名专业的多媒体测试人员,我们需要一堆的规范化标准的图片测试文件, 但是现有的图片资源名字命名的很随意比如:IMG_20200325_161111.jpg, 以上命名不能看出图片文件的具体图片编码格式,分辨率等信息, 测试经理要求我进行批量重命名工作,模板如下, 图片编码格式_分辨率_位深度_容器.容器, 例如: JPEG_1920x1080_32bit_jpg.jpg 图片编解码基本知识 图片编码:

  • python 批量重命名移动文件

    今天介绍的案例是如何利用Python来自动化移动.修改.重命名文件/夹,这样的操作在日常办公中经常会用到,若能掌握用Python实现将会大大提高效率! 所以我希望能够通过这篇文章来让大家了解:如何基于 os glob 和 shutil 对文件管理的综合运用! 一.需求描述 为了让本文介绍的案例更有通用型,我新建了一个文件夹 files1 存放着 1800+ 个文件,如下所示: 需要完成的内容如下 "将 1835 个文件移动到新文件夹 file2,并且重命名文件,名字开头加上 序号 和 "

  • python利用文件时间批量重命名照片和视频

    本文实例为大家分享了python利用文件时间批量重命名照片和视频的具体代码,供大家参考,具体内容如下 问题描述 承接上节的问题,在安卓和苹果间互导照片和视频还容易出现文件名混乱的问题,如下图所示. 代码实现 为保证文件名的准确性,这里主要提取照片的拍摄时间和视频的修改时间用于重命名,这两个时间一般是其原始时间,实现代码如下: import os import re import time import exifread def get_file_date(filepath, format): '

  • python文件名批量重命名脚本实例代码

    python文件名批量重命名脚本 #encoding=utf-8 import cv2 import os import shutil base_dir = r'文件所在的文件夹路径' SourseDir1 = r'源文件1名' SourseDir2 = r'源文件2名' DestDir = r'IMG' DestSourseDir1NameDirPath = os.path.join(base_dir,DestDir) if not os.path.exists(DestSourseDir1N

  • python实现文件批量重命名

    本文实例为大家分享了python实现文件批量重命名,供大家参考,具体内容如下 讲解 1.库:os 2.代码效果:对指定文件夹内所有文件重命名为1,2,3- 3.代码原理:使用os.listdir()遍历文件同时用os.rename()实现重命名 代码 import os def reName(dirname): count = 0 for cur_file in os.listdir(dirname): count += 1 oldDir = os.path.join(dirname, cur_

  • 一篇文章教你用Python实现一键文件重命名

    目录 应用背景 准备工作 上脚本 view.py 功能展示 打包方式 windows打包方式:pycharm打包为exe执行文件方法 总结 应用背景 背景:"由于工作需要可能需要对一些文件进行重命名的处理,但是可能操作起来比较烦,点错了就命名失败或者没带鼠标,用控制板操作起来比较麻烦等等场景" ps:以上都是200自我觉得比较烦,所以才出了这个小功能- 好了,此版本是基于上次文章的版本进行更新,(❕这次对上次的代码进行了更新,下文不会进行补充了哦,详细可以查看github上的源代码)详

  • python实现批量文件重命名

    本文实例为大家分享了python批量文件重命名的具体代码,供大家参考,具体内容如下 问题描述 最近遇到朋友求助,如何将大量文件名前面的某些字符删除. 即将图中文件前的编号删除. Python实现 用到了python中的os模块,os模块中的rename方法可以实现对文件的重命名 import os #path为批量文件的文件夹的路径 path = 'd:\\renamefolder' #文件夹中所有文件的文件名 file_names = os.listdir(path) #外循环遍历所有文件名,

  • 一篇文章教你用python画动态爱心表白

    初级画心 学Python,感觉你们的都好复杂,那我来个简单的,我是直接把心形看作是一个正方形+两个半圆: 于是这就很简单了,十行代码解决: import turtle as t t.pensize(2) # 笔大小2像素 t.pencolor("red") # 颜色为红色 t.left(45) # 45度 t.fd(200) # 向前200直线 t.circle(100, 180) # 画一圆半径100 弧度180 t.right(90) # 向右90度 t.circle(100, 1

  • 一篇文章教你用Python实现一个学生管理系统

    目录 片头 源码: 总结 片头 Python看了差不多三四天吧,基本上给基础看差不多了.写个管理系统吧,后续不出意外SQL.文件存储版本都会更. 学习Python感想: 人生苦短,我用Python 人生苦短,我用Python 人生苦短,我用Python 人生苦短,我用Python Python实在太爽了 源码: 使用Python3 ''' 学生成绩管理系统 时间:2021.9.9 作者:sunbeam ''' import time import os student_list = [] #定义

  • 一篇文章教你掌握python数据类型的底层实现

    目录 1. 列表 1.1 复制 1.2 列表的底层实现 - 浅拷贝 1.3 浅拷贝 - 示例 1. 新增元素 2. 修改元素 3. 列表型元素 4. 元组型元素 5. 字典型元素 6. 小结 1.4 列表的底层实现 - 深拷贝 2. 字典 2.1 快速查找 2.2 字典的底层实现 1. 字典的创建过程 2. 字典的访问过程 2.3 小结 3. 字符串 4. 是否可变 不可变类型:数字,字符串,元组 可变类型:列表,字典,集合 总结 1. 列表 1.1 复制 浅拷贝 list_1 = [1, [2

  • 一篇文章教你用Python绘画一个太阳系

    目录 日地月三体 日地火 太阳系 你们要的3D太阳系 图片上传之后不知为何帧率降低了许多... 日地月三体 所谓三体,就是三个物体在重力作用下的运动.由于三点共面,所以三个质点仅在重力作用下的运动轨迹也必然无法逃离平面. 三体运动所遵循的规律就是古老而经典的万有引力 则对于 m i 而言, 且 将其写为差分形式 由于我们希望观察三体运动的复杂形式,而不关系其随对应的宇宙星体,所以不必考虑单位制,将其在二维平面坐标系中拆分,则 #后续代码主要更改这里的参数 m = [1.33e20,3.98e14

  • 一篇文章教你学会使用Python绘制甘特图

    目录 优点 局限 一日一书 用来制作甘特图的专业工具也不少,常见的有:Microsoft Office Project.GanttProject.WARCHART XGantt.jQuery.Gantt.Excel等,网络上也有一些优质工具支持在线绘制甘特图. 可是这种现成的工具,往往也存在一些弊端,让编程人员不知所措.比如说,花里胡哨的UI,让人目不暇接,不知点哪个才好: 比如说,有些基于浏览器的图表需要掌握HTML.JS等编程语言,只会点Python的我直接被劝退: 再比如,进来就是注册.登

  • 一篇文章教你使用SpringBoot如何实现定时任务

    前言 在 Spring + SpringMVC 环境中,一般来说,要实现定时任务,我们有两中方案,一种是使用 Spring 自带的定时任务处理器 @Scheduled 注解,另一种就是使用第三方框架 Quartz ,Spring Boot 源自 Spring+SpringMVC ,因此天然具备这两个 Spring 中的定时任务实现策略,当然也支持 Quartz,本文我们就来看下 Spring Boot 中两种定时任务的实现方式. 一.第一种方式:@Scheduled 使用 @Scheduled

  • 一篇文章教你学会js实现弹幕效果

    目录 新建一个html文件: 建好html文件,搞出初始模版 HTML添加 CSS填充 js逻辑代码 动画效果 下面是弹幕效果 : 相信小伙伴们都看过了,那么它实现的原理是什么呢,那么我们前端怎么用我们web技术去实现呢?? 新建一个html文件: 哈哈哈,大家别像我一样用中文命名. 中文命名是不合规范的,行走江湖,大佬们看见你的中文命名会笑话你的. 上图中,我们引入了jquery插件,没错我们用jq写,回归原始(找不到cdn链接的小伙伴可以百度bootcdn,在里面搜索jquery).并且取了

  • 一篇文章彻底弄懂Python字符编码

    目录 1. 字符编码简介 1.1. ASCII 1.2. MBCS 1.3. Unicode 2. Python2.x中的编码问题 2.1. str和unicode 2.2. 字符编码声明 2.3. 读写文件 2.4. 与编码相关的方法 3.建议 3.1.字符编码声明 3.2. 抛弃str,全部使用unicode. 3.3. 使用codecs.open()替代内置的open(). 3.4. 绝对需要避免使用的字符编码:MBCS/DBCS和UTF-16. 1. 字符编码简介 1.1. ASCII

随机推荐