Pythonでファイルの一括置換

OneDriveでファイルアップロードしてたら一部ファイルがエラーになってた。
どうやらファイル名に'#'が含まれているとだめらしい。

ってことで、ファイルの一括置換スクリプトを書いた
既存のツールやコマンドでいくらでもできそうだけど、
Pythonの練習ってことで。


import tkinter, os

class replaceFileName(tkinter.Frame):
    def __init__(self, initdir=os.getcwd()):
        self.root = tkinter.Tk()
        self.root.title(self.__class__.__name__)
        self.ePath = tkinter.Entry(width=100)
        self.ePath.insert(tkinter.END, initdir)
        self.eIStr = tkinter.Entry(width=10)
        self.eOStr = tkinter.Entry(width=10)
        self.bExec = tkinter.Button(text='exec',command=self.exec)
        self.ePath.pack(anchor=tkinter.W)
        self.eIStr.pack(anchor=tkinter.W)
        self.eOStr.pack(anchor=tkinter.W)
        self.bExec.pack(anchor=tkinter.E)
    def exec(self):
        istr, ostr = self.eIStr.get(), self.eOStr.get()
        path = self.ePath.get()
        for ifile in os.listdir(path):
            ofile = ifile.replace(istr,ostr)
            os.rename(os.path.join(path,ifile), os.path.join(path,ofile))
    def mainloop(self):
        self.root.mainloop()

if __name__ == "__main__":
    rfn = replaceFileName()
    rfn.mainloop()



(説明なし。エラーチェックなんかもしてないので動かないこと有り)

コメント

このブログの人気の投稿

Python SQLite スレッド間でコネクションの使いまわしは出来ない

slackでgeneralの投稿を全削除する

Google location history(JSON形式)をCSVファイルにする