去除文件名中相同的部分

一晃一年都没写博客了,又是庸庸碌碌的过去了一年,最近开始研究大数据方向,下了很多视频,然后发现文件名后面都带有链接,让我这样的强迫症患者很不舒服,然后网上百度了一下,写了一个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

posted @ 2021-06-17 15:12  情浅凉心  阅读(296)  评论(0编辑  收藏  举报