IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> python+tkinter=GUI= 文件名批量修改器 -> 正文阅读

[Python知识库]python+tkinter=GUI= 文件名批量修改器

背景描述????????

????????朋友求助写一个文件批量修改小程序

开发流程

????????1、先写了基础的功能函数,通过Pyinstaller打包,形成exe文件,难看且不会用==PASS

????????2、搜TK教程,花一个多小时学习,添加各种选项框,把功能函数扔进去,修改输入输出,形成完整界面

????????总耗时2小时,大功告成!效果如下

TK教程参考:

????????菜鸟教程

? ? ? ? 简书入门教程? (推荐)

? ? ? ? 官方文档

源代码

????????新手开发,勿喷!

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import hashlib
import time,os,sys
from tkinter import *

LOG_LINE_NUM = 0

class MY_GUI():
    def __init__(self,init_window_name):
        self.init_window_name = init_window_name


    #设置窗口
    def set_init_window(self):
        self.init_window_name.title("文件名处理器_YSP_V1.0")           #窗口名
        #self.init_window_name.geometry('320x160+10+10')                         #290 160为窗口大小,+10 +10 定义窗口弹出时的默认展示位置
        self.init_window_name.geometry('868x681+10+10')
        #self.init_window_name["bg"] = "pink"                                    #窗口背景色,其他背景色见:blog.csdn.net/chl0000/article/details/7657887
        #self.init_window_name.attributes("-alpha",0.9)                          #虚化,值越小虚化程度越高
        #标签
        self.init_dir_label = Label(self.init_window_name, text="请输入文件路径")
        self.init_dir_label.grid(row=0, column=0)

        self.init_data_label = Label(self.init_window_name, text="需要添加内容")
        self.init_data_label.grid(row=2, column=0)

        self.result_data_label = Label(self.init_window_name, text="修改后结果")
        self.result_data_label.grid(row=0, column=12)

        self.log_label = Label(self.init_window_name, text="日志")
        self.log_label.grid(row=12, column=0)
        #文本框
        self.init_dir_Text = Text(self.init_window_name, width=60, height=5)  #文件路径录入
        self.init_dir_Text.grid(row=1, column=0, rowspan=1, columnspan=10)

        self.init_data_Text = Text(self.init_window_name, width=60, height=5)  #原始数据录入框
        self.init_data_Text.grid(row=3, column=0, rowspan=1, columnspan=10)
        
        self.result_data_Text = Text(self.init_window_name, width=60, height=49)  #处理结果展示
        self.result_data_Text.grid(row=1, column=12, rowspan=15, columnspan=10)

        self.log_data_Text = Text(self.init_window_name, width=66, height=9)  # 日志框
        self.log_data_Text.grid(row=13, column=0, columnspan=10)
        #按钮
        self.str_trans_to_md5_button = Button(self.init_window_name, text="加前缀", bg="lightblue", width=10,command=self.qianzhui)  # 调用内部方法  加()为直接调用
        self.str_trans_to_md5_button.grid(row=6, column=1)
        self.str_trans_to_md5_button = Button(self.init_window_name, text="加后缀", bg="lightblue", width=10,command=self.houzhui)  # 调用内部方法  加()为直接调用
        self.str_trans_to_md5_button.grid(row=6, column=2)
        self.str_trans_to_md5_button = Button(self.init_window_name, text="重新命名", bg="lightblue", width=10,command=self.chongmingming)  # 调用内部方法  加()为直接调用
        self.str_trans_to_md5_button.grid(row=6, column=3)


    #功能函数
    def qianzhui(self):
        input1=self.init_data_Text.get(1.0,END).replace('\n',"")
        dir=self.init_dir_Text.get(1.0,END).replace('\\',r'//').replace('\n',"")
        if dir and input1:
            try:
                for filename in os.listdir(dir):
                    tmp=(os.path.join(dir, filename)).replace('\\','//')
                    os.replace(tmp,r"{}//{}".format(dir,input1+tmp.split('//')[-1]))
                self.result_data_Text.delete(1.0,END)
                i=1.0
                for x in os.listdir(dir):
                    x=x+'\n'
                    self.result_data_Text.insert(i,x)
                    i=i+1
                self.write_log_to_Text("修改成功")
            except:
                self.result_data_Text.delete(1.0,END)
                self.result_data_Text.insert(1.0,"修改失败")
        else:
            self.write_log_to_Text("请同时输入路径和待添加内容")

    def houzhui(self):
        input1=self.init_data_Text.get(1.0,END).replace('\n',"")
        dir=self.init_dir_Text.get(1.0,END).replace('\\',r'//').replace('\n',"")
        if dir and input1:
            try:
                for filename in os.listdir(dir):
                    tmp=(os.path.join(dir, filename)).replace('\\','//')
                    hou=tmp.split('.')
                    os.replace(tmp,r"{}{}.{}".format(hou[0],input1,hou[1]))
                i=1.0
                for x in os.listdir(dir):
                    x=x+'\n'
                    self.result_data_Text.insert(i,x)
                    i=i+1                        
                self.write_log_to_Text("修改成功")
            except:
                self.result_data_Text.delete(1.0,END)
                self.result_data_Text.insert(1.0,"修改失败")
        else:
            self.write_log_to_Text("请同时输入路径和待添加内容")
            
    def chongmingming(self):
        input1=self.init_data_Text.get(1.0,END).replace('\n',"")
        dir=self.init_dir_Text.get(1.0,END).replace('\\',r'//').replace('\n',"")
        if dir and input1:
            try:
                i=0
                for filename in os.listdir(dir):
                    
                    tmp=(os.path.join(dir, filename)).replace('\\','//')
                    hou=tmp.split('.')
                    os.replace(tmp,r"{}{}.{}".format(dir+'//'+input1,str(i),hou[1]))
                    i=i+1
                i=1.0
                for x in os.listdir(dir):
                    x=x+'\n'
                    self.result_data_Text.insert(i,x)
                    i=i+1                        
                self.write_log_to_Text("修改成功")
            except:
                self.result_data_Text.delete(1.0,END)
                self.result_data_Text.insert(1.0,"修改失败")
        else:
            self.write_log_to_Text("请同时输入路径和待添加内容")
    #获取当前时间
    def get_current_time(self):
        current_time = time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))
        return current_time


    #日志动态打印
    def write_log_to_Text(self,logmsg):
        global LOG_LINE_NUM
        current_time = self.get_current_time()
        logmsg_in = str(current_time) +" " + str(logmsg) + "\n"      #换行
        if LOG_LINE_NUM <= 7:
            self.log_data_Text.insert(END, logmsg_in)
            LOG_LINE_NUM = LOG_LINE_NUM + 1
        else:
            self.log_data_Text.delete(1.0,2.0)
            self.log_data_Text.insert(END, logmsg_in)


def Start():
    init_window = Tk()              #实例化出一个父窗口
    ZMJ_PORTAL = MY_GUI(init_window)
    # 设置根窗口默认属性
    ZMJ_PORTAL.set_init_window()

    init_window.mainloop()          #父窗口进入事件循环,可以理解为保持窗口运行,否则界面不展示


Start()

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-10-19 11:50:09  更:2021-10-19 11:51:19 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 20:56:11-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码