• 去除文件名中相同的部分


    一晃一年都没写博客了,又是庸庸碌碌的过去了一年,最近开始研究大数据方向,下了很多视频,然后发现文件名后面都带有链接,让我这样的强迫症患者很不舒服,然后网上百度了一下,写了一个bat脚本,结果只能去除文件开头的相同内容。
    参考的bat脚本

    @echo off& setlocal enabledelayedexpansion
    
    for /f "delims=" %%1 in ('dir /a /b') do (set wind=%%1
    
    ren "%%~1" "!wind:文档=!")
    

    还有的让我去下载一个bulk rename utility的工具去处理,想了一下,实在不想下载,也不是很复杂,就自己写一个吧,贴一下我写的脚本,很简单,只是证明我还活着,还是会继续写博客,有的时候研究都是皮毛,而且很杂,都不知道如何分享,所以导致我很久没有写博客了。

    import os
    import sys
    
    def TravDirectory(containContent): 
        for dirpath, _, filenames in os.walk("./"):
            for file in filenames:
                filename, extension = os.path.splitext(file)
                if containContent in filename:
                    filename = filename.replace(containContent, "").strip()
                    os.rename(os.path.join(dirpath, file), os.path.join(dirpath, filename+extension))
    
    if __name__ == "__main__":
        try:
            delContent = sys.argv[1]
        except:
            print("请输入你要去除的内容")
            os.system("pause")
        TravDirectory(delContent
    

    脚本运行也很简单,将内容复制到本地,然后创建一个文件保存脚本内容,如果你要处理的文件是多个目录,就放在这多个目录的父目录中,如果只是一个目录的话,就放同级目录下就好,然后执行

    python 脚本名 要删除的内容
    

    如果要删除的内容包含空格,记得用引号括起来,防止有些跟我一样懒的人,复制都不想复制,或者本地没有python环境,这里我再分享一个我通过pyinstaller打出来的exe以供执行。说到pyinstaller打包,上次在CSDN上看到一个付费的博客,写的很好,有机会整理整理,结合我的收获分享给大家。

    链接:https://pan.baidu.com/s/1fpLGnRpZyEvLcQkc5lRhvA
    提取码:0nu0

    exe也不能直接双击运行哦,因为需要输入要去除的内容,所以还是得在cmd上运行,类似如下,因为实在很懒,不想写gui

    =》2021-06-21更新《=
    对于我一个这么懒的人,实在是没办法每次还要我去通过cmd窗口去运行,感觉多了一步太麻烦了,所以更改了一下程序,添加了一个gui。修改代码如下

    import os
    import tkinter as tk
    
    def TravDirectory(containContent): 
        for dirpath, _, filenames in os.walk("./"):
            for file in filenames:
                filename, extension = os.path.splitext(file)
                if containContent in filename:
                    filename = filename.replace(containContent, "").strip()
                    os.rename(os.path.join(dirpath, file), os.path.join(dirpath, filename+extension))
    
    if __name__ == "__main__":
        try:
            gui = tk.Tk()
            gui.title("重命名工具")
            # 创建标签
            label = tk.Label(gui, text="去除内容: ", font="微软雅黑")
            label.grid(row=1)
            # 创建输入框
            inpContent = tk.Entry(gui)
            # 设置输入框默认内容
            # inpContent.insert(0, "")
            # 设置输入框显示位置
            inpContent.grid(row=1, column=1)
    
            # 创建执行按钮
            executeBtn = tk.Button(gui, text="确定", width=13, command=lambda:TravDirectory(inpContent.get()))
            executeBtn.grid(row=3, column=1)
    
            # 创建退出按
            exitBtn = tk.Button(gui, text="退出", width=8, command=gui.quit)
            exitBtn.grid(row=3)
    
            gui.mainloop()
    
        except:
            print("请输入要删除的内容")
    

    运行之后点击确定按钮即可运行
    同样也打包好了一个exe
    链接:https://pan.baidu.com/s/1xNnJsD_m-ypuyMjTdEuIbg
    提取码:sx05

  • 相关阅读:
    使用gradle打包时将依赖也合并入jar包
    fiddler win10-1703Failed to register Fiddler as the system proxy
    VC编译选项 多线程(/MT)
    [转载]ACM(访问控制模型),Security Identifiers(SID),Security Descriptors(安全描述符),ACL(访问控制列表),Access Tokens(访问令牌)
    线程操作函数
    注册表使用技巧
    在github上参与开源项目日常流程
    盘点富人和穷人九大经典差异
    C++程序风格的思考
    mfc窗口,父窗口parentwindow,所有者窗口ownerwindow 区别
  • 原文地址:https://www.cnblogs.com/xll970105/p/14893558.html
Copyright © 2020-2023  润新知