1. 程式人生 > >python之檔案批量更名及檔名批量儲存

python之檔案批量更名及檔名批量儲存

   
      如果self.savefilenameformat輸入為空的情況下,將資料夾中的檔名下入txt文字以及其他型別文件中,在這裡有兩種選擇模式,預設self.choosefilenameformat=2是把當前資料夾中的檔案的檔名下入文件中,模式self.choosefilenameformat=1下是將當前資料夾中的檔案其所屬路徑下入文件中;如果self.savefilenameformat='.doc'有賦值的時候,執行的是對當前資料夾中的檔案進行更名操作。

      程式執行環境在python3.6下,安裝PyQt5,pip install PyQt5,並匯入庫目錄。import os,import sys。

      程式執行介面圖:

資料夾操作主程式:

    def change_file(self, file, file_suffix, file_suffix_change):
        """
        對資料夾中的檔案字尾名進行更改
        :param file: 被更改的資料夾地址
        :param file_suffix: 更改的檔案字尾名
        :param file_suffix_change: 更改檔案改成的檔案字尾名
        :return:
        """
        files = os.listdir(file)  # 將資料夾中
        print(files)
        tmp=0
        for filename in files:
            print("檔名", filename)
            portion = os.path.splitext(filename)
            if portion[1] == file_suffix:
                newname = portion[0] + file_suffix_change
                print("改後的檔名", newname)
                os.chdir(file)  # 改變當前工作目錄到指定的路徑
                os.rename(filename, newname)
                tmp+=1
        self.filenamenum=tmp

    def Write_Data(self, filename, filename_write, filename_suffix='.txt', file_choose=2):
        """
        將資料夾中的檔案的檔名寫入文件中
        :param filename: 讀取檔名的位置
        :param filename_write: 寫入檔名檔案的儲存位置
        :param filename_suffix: 讀取檔案的字尾名,預設.txt文件
        :param file_choose:1為寫入所有地址,2為寫入資料夾下檔名的地址
        :return:
        """
        self.datalen=0
        if file_choose == 1:
            files = os.listdir(filename)
            data = []
            for file in files:
                portion = os.path.splitext(file)
                if portion[1] == filename_suffix:
                    # print(filename + file)
                    data.append(filename + file)
            self.datalen=len(data)
            if len(data) != 0:
                f = open(filename_write, 'w')
                for i in range(len(data)):
                    f.write(data[i] + '\n')
                f.close()
        elif file_choose == 2:
            files = os.listdir(filename)
            data = []
            for file in files:
                portion = os.path.splitext(file)
                if portion[1] == filename_suffix:
                    # print(file)
                    data.append(file)
            self.datalen = len(data)
            if len(data) != 0:
                f = open(filename_write, 'w')
                for i in range(len(data)):
                    f.write(data[i] + '\n')
                f.close()
        else:
            print("file_choose:1為寫入所有地址,2為寫入資料夾下檔名的地址")

如需要輸出成.exe執行檔案,可以通過pyinstaller輸出,可以參考: