Rodhos Soft

備忘録を兼ねた技術的なメモです。Rofhos SoftではiOSアプリ開発を中心としてAndroid, Webサービス等の開発を承っております。まずはご相談下さい。

ファイル操作

ファイル名変更に一時間以上費やしている..
使い方を調べるためにラッパークラスを書いてみた。直接使えば良いのであまり意味はない。

#coding:utf-8
import os.path # ファイル操作
import shutil # 再帰的削除
import glob # ファイル一括
import re # 正規表現

class FileUtil:
    def __init__(self, file):
        self.file = file

    def show(self):
        with open( self.file, "r") as f:
            for row in f:
                print(row.strip())

    # ファイルが存在しない場合は新規作成
    # 追加しない
    def write(self, text):
        with open( self.file, "w") as f:
            f.write(text)

    def isExist(self):
        return os.path.exists(self.file)

    def removeFile(self):
        os.remove(self.file)

    def deleteDirectory(self):
        shutil.rmtree(self.file)

    def echo(self):
        print(self.file)

    def setFileName(self, file):
        self.file = file

    def isFile(self):
        return os.path.isfile(self.file)

    def isDir(self):
        return os.path.isdir(self.file)

    def rename(self,name):
        os.rename(self.file, name)

# ref http://qiita.com/supersaiakujin/items/12451cd2b8315fe7d054

def sampleFileUtil():
    u = FileUtil("hoge.txt")
    u.show()

# fileRename(r"hoge", r"Fuga")
def fileRename(before, after):
    flist = glob.glob("*.*")
    cN = lambda target : changeName(target, before, after)
    l = list(map(cN, flist))
    for before, after in zip(flist, l):
        os.rename(before, after)
        print(before + " -> " + after)

def changeName(target, before, after):
    return re.sub(before,after, target)