码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • python批量重命名工具


    import PySimpleGUI as sg    
    from hashlib import sha1
    import os,shutil
    
    def gui():
        layout = [
                [sg.Text('你选择的文件夹是:',font=("宋体", 10)),sg.Text('',key='text1',size=(50,1),font=("宋体", 10))],
                [sg.Text('程序运行记录',justification='center')],
                [sg.Output(size=(70, 20),font=("宋体", 10))],              
                [sg.FolderBrowse('打开文件夹',key='folder',target='text1'),sg.Button('重命名'),sg.Button('关闭程序')]
                ]    
      
        window = sg.Window('雁陎的工具箱', layout,font=("宋体", 15),default_element_size=(50,1))  
      
        while True:
            event, values = window.read()
            if event in (None, '关闭'):   # 如果用户关闭窗口或点击`关闭`
                break
            if event == '重命名':
                if values['folder']:
                    print('{0}正在重命名原文件为hash值{0}'.format('*'*10))
                    mult_rename(values['folder'])
                    print('{0}重命名完毕{0}'.format('*'*10))
                else:
                    print('请先选择文件夹')
      
        window.close()
    
    
    def calchash(file_path):  # 计算图片hash值
        with open(file_path,'rb') as f:
            sha1obj = sha1()
            sha1obj.update(f.read())
            hash = sha1obj.hexdigest()
            return hash
     
      
    def mult_rename(dir_path): # 批量重命名
        for file in os.listdir(dir_path):
            file_path = os.path.join(dir_path,file)
            if not os.path.isdir(file_path): # 判断是否为文件夹         
                pic_hash = calchash(file_path)      # 计算hash值           
                last = file[file.rindex(r'.'):]  # 后缀
                new_name = pic_hash+last
                if file == new_name:
                    print(file,'无需修改')
                else:
                    try:
                        new_path = os.path.join(dir_path,new_name)
                        os.rename(file_path,new_path)
                        print('{0}已重命名为{1}'.format(file,new_name))
                    except FileExistsError:
                        repeat_path = dir_path+r'\重复文件夹'
                        if os.path.exists(repeat_path) == False:
                            os.makedirs(repeat_path)
                        new_path = os.path.join(repeat_path,new_name)
                        shutil.move(file_path,new_path)
                        print(r'{0}文件重复,已移至重复文件夹下'.format(file))
    
    def main():  
        gui()
    
    if __name__ == '__main__':
        main()          
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
  • 相关阅读:
    layui 使用xm-select实现下拉框多选
    Linux mmap读/写触发共享文件页生命周期
    聊聊 Libuv 最近引入的 io_uring
    四、概率论
    C#源码 LIS实验室(检验科)信息系统源码 SaaS模式的Client/Server架构
    用js的moment插件 获取指定时间戳的所在月份的最后一天的最后一毫秒的时间戳。
    基于交流潮流的电力系统多元件N-k故障模型研究(Matlab代码实现)【电力系统故障】
    汇率查询接口
    荧光染料AF488 alkyne, 5-isomer,AF488 炔基, 5-异构体
    慧眼APP开发项目
  • 原文地址:https://blog.csdn.net/weixin_47634487/article/details/127697386
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号