初见程序员

文件命名排序小程序

2020-04-25  本文已影响0人  余笙ya
import os
import tkinter as tk  
class ImageRename():
    def __init__(self):
        #这是存放文件的文件夹位置,只要修这个就可以运行
        self.path = r'C:\Users\users\Desktop\aa'

    def rename(self):
        filelist = os.listdir(self.path)
        totalnum = len(filelist)
        
        u = 1
        i = 1
        o = 1
        p = 1
        l = 1
        for item in filelist:
            if item.endswith('.jpg'):
                src = os.path.join(os.path.abspath(self.path), item)
                dst = os.path.join(os.path.abspath(
                    self.path), 'image' + format(str(u), '0>3s') + '.jpg')
                os.rename(src, dst)
                u = u + 1
                #如果文档类型是pptx、docx、xlsx关乎版本问题,可能不兼容,需要做以修改
            if item.endswith('.ppt'):
                #如果所有类型文档编号一起排序,不从1重新开始的话可以把所有变量:u i o p l统一改为u
                src = os.path.join(os.path.abspath(self.path), item)
                dst = os.path.join(os.path.abspath(
                    self.path), 'ppt' + format(str(i), '0>3s') + '.ppt')
                os.rename(src, dst)
                i = i + 1
            if item.endswith('.doc'):
                src = os.path.join(os.path.abspath(self.path), item)
                dst = os.path.join(os.path.abspath(
                    self.path), 'word' + format(str(o), '0>3s') + '.doc')
                os.rename(src, dst)
                o = o + 1
            if item.endswith('.xls'):
                src = os.path.join(os.path.abspath(self.path), item)
                dst = os.path.join(os.path.abspath(
                    self.path), 'excel' + format(str(p), '0>3s') + '.xls')
                os.rename(src, dst)
                p = p + 1
            if item.endswith('.txt'):
                src = os.path.join(os.path.abspath(self.path), item)
                dst = os.path.join(os.path.abspath(
                    self.path), 'text' + format(str(l), '0>3s') + '.txt')
                os.rename(src, dst)
                l = l + 1
window = tk.Tk()

window.title('文件命名排序程序')
 
window.geometry('400x200')  
 
# 在图形界面上设定标签
var = tk.StringVar()    # 将label标签的内容设置为字符类型,用var来接收hit_me函数的传出内容用以显示在标签上
l2 = tk.Label(window, text='该程序不管原本文件排序,只是随机排序命名', bg='#EE82EE', font=('Arial', 12), width=38, height=2)
l2.pack()
l = tk.Label(window, textvariable=var, bg='green', fg='white', font=('Arial', 12), width=38, height=2)
# 说明: bg为背景,fg为字体颜色,font为字体,width为长,height为高,这里的长和高是字符的长和高,比如height=2,就是标签有2个字符这么高
l.pack()

# 定义一个函数功能(内容自己自由编写),供点击Button按键时调用,调用命令参数command=函数名
on_hit = False
def hit_me():
    global on_hit
    if on_hit == False:
        on_hit = True
        
        if __name__ == '__main__':
            newname = ImageRename()
            newname.rename()
        
        var.set('运行成功')
    else:
        on_hit = False
        var.set('')
 
# 在窗口界面设置放置Button按键
b = tk.Button(window, text='运行', font=('Arial', 12), width=10, height=1, command=hit_me)
b.pack()
 
# 主窗口循环显示
window.mainloop()

是一个GUI小程序运行之后是这样的:



原来文件夹的命名方式:



程序运行之后之后文件夹的命名方式:
上一篇 下一篇

猜你喜欢

热点阅读