1. 程式人生 > 實用技巧 >python檔案批量重新命名

python檔案批量重新命名

python檔案批量重新命名

程式碼如下:

# -*- coding: gbk -*-
import os


class fileRename():
    def __init__(self, path):
        self.__path = path
        self.__order = {}
        self.__files = os.listdir(path)

    def list(self):
        return self.__files

    def presolve(self, string):
        for _ in string.split(";"):
            __ = _.split(",")
            #self.__order.update({__[0]:__[1]})
            self.__order[__[0]] = __[1]
    def rename(self):
        print("當前位於:{}".format(self.__path))
        print("此路徑下檔案如下:{}".format(self.list()))
        print("請輸入想要批量修改的資料(格式為key1,value1;key2,value2;……)")
        self.presolve(input())
        readyToRename = set()
        for o in self.__order.keys():
            for fname in self.__files:
                if o in fname:
                    readyToRename.add(fname)
        print("有 {} 個檔案等待修改".format(len(readyToRename)))
        if len(readyToRename) == 0:
            print("Nothing to rename")
            return
        print("是否進行操作? 輸入yes/no")
        ans = input()
        if ans == "yes" or ans == "y":
            for f in readyToRename:
                oldname = self.__path +"\\"+ f
                newname = self.__path +"\\"+ f
                for o in self.__order.keys():
                    newname = newname.replace(o,self.__order[o])
                os.rename(oldname,newname)
        elif ans == "no" or ans == "n":
            print("退出")
        else:
            print("指令錯誤,已退出")
        print("Success!")

f = fileRename(input('請輸入資料夾路徑'))
f.rename()