python重命名窗口_为《Python实现批量重命名》程序加一个GUI

前一篇文章(Python实现批量重命名),用Pyton做了一个批量重命名的小脚本程序,但是觉得这个用起来不太方便,于是想要进行一些改进,最好再加上GUI。

一、

首先,它的修改路径是写死在代码中的:# 图片存放的路径

path = r"D:/temp"

所以这一次想要改成可以由用户自己选择的形式,就像下面这样:

二、

为程序加一个简单的GUI界面,让它有更好的体验。

该GUI界面是使用Python自带的tkinter库实现的。

三、

原来的程序的设定是将文件重命名为递增的.jpg文件,现在进行了一些改进,改为了原来是什么类型的文件,重命名后还是什么类型的文件,即不改变文件类型,仅改变主文件名。

原:os.rename(os.path.join(path,file),os.path.join(path,str(num))+".jpg")

现:os.rename(os.path.join(path.get(),file),os.path.join(path.get(),str(num))+'.'+file.split('.')[-1])

四、

基本操作演示

# FilesBatchRenameWithGUI.py

# 导入需要的库

import tkinter as tk

from tkinter import filedialog

import os

# 控制文件列表显示函数

def DisplayList():

listbox.delete(0,tk.END)

for file in os.listdir(path.get()):

listbox.insert(tk.END,file)

# 获取文件夹路径函数

def GetPath():

filepath = filedialog.askdirectory()

path.set(filepath)

DisplayList()

# 批量重命名函数

def HandelFiles():

num = 1

for file in os.listdir(path.get()):

print(file)

os.rename(os.path.join(path.get(),file),os.path.join(path.get(),str(num))+'.'+file.split('.')[-1])

num = num + 1

DisplayList()

root = tk.Tk()

root.title('批量重命名')

root.resizable(0,0)

path = tk.StringVar() # 定义路径变量

# 定义控件

listbox = tk.Listbox(root)

label = tk.Label(root,text="文件夹路径:")

entry = tk.Entry(root,textvariable=path)

button1 = tk.Button(root,text="选择路径",command=GetPath)

button2 = tk.Button(root,text="开始处理",command=HandelFiles)

# 调整控件布局

label.grid(row=0,column=0)

entry.grid(row=0,column=1)

button1.grid(row=0,column=2)

button2.grid(row=0,column=3)

listbox.grid(row=1,column=0,columnspan=4,sticky=tk.W+tk.E)

root.mainloop()

(全文完)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/472118.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vim使用教程(全)-最好的编辑器 2015-04-09 18:26 40人阅读 评论(0) 收藏...

vim的学习曲线相当的大,所以,如果你一开始看到的是一大堆VIM的命令分类,你一定会对这个编辑器失去兴趣的。下面的文章翻译自《Learn Vim Progressively》,我觉得这是给新手最好的VIM的升级教程了,没有列举所有的 vim的…

mysql中有sa_SA工作-mysql设计规范

表的设计字段尽量设置not null,mysql的null值和空字符串不一样,null值占用空间,空字符串不占用空间。Null值占用空间,比较时会参与比较,但b树索引不会存储null值,因此当索引的字段包含null值,效…

天池 在线编程 最大子树(自底向上)

文章目录1. 题目2. 解题1. 题目 描述 给你一棵二叉树,找二叉树中的一棵子树,他的所有节点之和最大。 返回这棵子树的根节点。 我会把你返回的节点作为最优子树的树根来打印。 数据保证有且仅有唯一的解。 示例 样例 1: 输入: {1,-5,2,0,3,-4,-5} 输出…

sql随机抽取数据50条_MySQL中随机抽样

2.9 随机抽样在审计或IT审计中,常常使用抽样,也就是对具有审计相关性的总体中低于百分之百的项目实施审计程序,使所有抽样单元都有被选取的机会,为注册会计师针对整个总体得出结论提供合理基础。简单来说,就是我们需要…

mysql pdo 事务处理_php中pdo的mysql事务处理实例

phpmysql事务处理的几个步骤:1.关闭自动提交2.开启事务处理3.有异常就自动抛出异常提示再回滚4.开启自动提交注意:mysql只有这个InnoDB驱动是支持事务处理的&#xff0c;默认MyIsAM驱动不支持.下面是实例代码&#xff1a;<?php try{$pdonew pdo("mysql:hostlocalhost;…

spring手动回滚事务_Spring总结---gt;03

什么是事务逻辑上的一组操作&#xff0c;组成这组操作的各个单元&#xff0c;要么全都成功&#xff0c;要么全都失败。事务的特性原子性&#xff1a;事务不可分割一致性&#xff1a;事务执行前后数据完整性保持一致隔离性&#xff1a;一个事务的执行不应该受到其他事务的干扰 持…

java-设计模式(结构型)-【代理模式】

1.代理模式(ProxyMode) 定义&#xff1a;外观模式是对类与类之间关系的描述&#xff0c;而代理模式是对原来的方法添加其他的操作。 代理有“网关”的含义&#xff0c;比如用户访问论坛&#xff0c;则要经过代理(网关)授权给你才能访问&#xff0c;即 游客和注册用户的权限不同…

mysql建表_128、mysql建表和简单sql

EMPLOYEES, 有四个字段&#xff0c;EMPLOYEE_ID:员工表(主键)、DEPT_ID:部门号、EMPLOYEE_NAME:员工姓名、EMPLOYEE_SALARY:员工工资。建表语句CREATE TABLE EMPLOYEES(EMPLOYEE_ID int not null primary key,DEPT_ID int,EMPLOYEE_NAME char(40),EMPLOYEE_SALARY double);检索…

LeetCode 1893. 检查是否区域内所有整数都被覆盖(差分)

文章目录1. 题目2. 解题1. 题目 给你一个二维整数数组 ranges 和两个整数 left 和 right 。每个 ranges[i] [starti, endi] 表示一个从 starti 到 endi 的 闭区间 。 如果闭区间 [left, right] 内每个整数都被 ranges 中 至少一个 区间覆盖&#xff0c;那么请你返回 true &a…

Log4j乱码

在log4j.properties里添加encoding , 例如 : log4j.appender.fuscentorg.apache.log4j.DailyRollingFileAppender log4j.appender.fuscent.encodingUTF-8 log4j.appender.fuscent.File/Users/kane/Work/log/core/fuscent.log log4j.appender.fuscent.layoutorg.apache.log4j.P…

mysql的where字句调优_mysql中select和where子句优化的总结

本篇文章给大家带来的内容是关于mysql中select和where子句优化的总结&#xff0c;有一定的参考价值&#xff0c;有需要的朋友可以参考一下&#xff0c;希望对你有所帮助。数据库优化:1.可以在单个SQL语句&#xff0c;整个应用程序&#xff0c;单个数据库服务器或多个联网数据库…

数据中台建设与应用_Gartner对于建设数据中台的建议

(文&#xff1a;Gartner高级研究总监 孙鑫)数据中台是中国本土诞生的一个名词&#xff0c;很多企业在“什么是数据中台”和“我要上XX中台”徘徊。其炒作程度跟当年的“大数据” 一词有的一拼&#xff0c;如果用Gartner的炒作周期图来看&#xff0c;数据中台目前已经逼近炒作的…

LeetCode 1894. 找到需要补充粉笔的学生编号

文章目录1. 题目2. 解题1. 题目 一个班级里有 n 个学生&#xff0c;编号为 0 到 n - 1 。 每个学生会依次回答问题&#xff0c;编号为 0 的学生先回答&#xff0c;然后是编号为 1 的学生&#xff0c;以此类推&#xff0c;直到编号为 n - 1 的学生&#xff0c;然后老师会重复这…

C# Excel处理工具

需求&#xff1a;选择一个Excel文件&#xff0c;然后对该Excel文件进行处理&#xff0c;再导出一个处理后的Excel文件。 效果图 声明&#xff1a;我对winform开发不熟&#xff0c;但是我看到许多开发人员做东西只管交差&#xff0c;从不考虑用户体验&#xff0c;也不考虑容错处…

mysql 坚向变横向_(排班表一)使用SQL语句使数据从坚向排列转化成横向排列

知识重点&#xff1a;1.extract(day from schedule01::timestamp)13Extract 属于 SQL 的 DML(即数据库管理语言)函数&#xff0c;同样&#xff0c;InterBase 也支持 Extract&#xff0c;它主要用于从一个日期或时间型的字段内抽取年、月、日、时、分、秒数据&#xff0c;因此&a…

python增加子类的参数_python 子类向父类传递关键字参数

父类构造函数class SoapClient(object):"""Simple SOAP Client (simil PHP)"""def __init__(self, locationNone, actionNone, namespace,certNone, proxyNone, nsNone,soap_nsNone, wsdlNone, wsdl_basedir, ca_certsNone,sessionsFalse, soap_…

LeetCode 1897. 重新分配字符使所有字符串都相等

文章目录1. 题目2. 解题1. 题目 给你一个字符串数组 words&#xff08;下标 从 0 开始 计数&#xff09;。 在一步操作中&#xff0c;需先选出两个 不同 下标 i 和 j&#xff0c;其中 words[i] 是一个非空字符串&#xff0c;接着将 words[i] 中的 任一 字符移动到 words[j] 中…

2015/4/14课堂练习

1.设计题目 书店针对《哈利波特》系列书籍进行促销活动&#xff0c;一共5卷&#xff0c;用编号0、1、2、3、4表示&#xff0c;单独一卷售价8元&#xff0c; 具体折扣如下所示&#xff1a; 本     数量 折扣 …

python 图片背景前景分离_【绝了】用 Python 把朋友头像变表情包!

正文在日常生活中&#xff0c;我们经常会存取一些朋友们的丑照&#xff0c;在这个项目中&#xff0c;我们以萌萌哒的熊猫头作为背景&#xff0c;然后试着在背景图上加入朋友们的照片&#xff0c;效果如下图所示。实现步骤导入朋友的照片(前景照片)&#xff1b;处理前景照片(缩放…

LeetCode 1899. 合并若干三元组以形成目标三元组

文章目录1. 题目2. 解题1. 题目 三元组 是一个由三个整数组成的数组。 给你一个二维整数数组 triplets &#xff0c;其中 triplets[i] [ai, bi, ci] 表示第 i 个 三元组 。 同时&#xff0c;给你一个整数数组 target [x, y, z] &#xff0c;表示你想要得到的 三元组 。 为了…