Rodhos Soft

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

class名を抜き出す

色々他のサイトを検索しつつやってみたができた感じがする。

#coding:utf-8
import os.path # ファイル操作
import shutil # 再帰的削除
import glob # ファイル一括
import re # 正規表現
# http://quzee.hatenablog.com/entry/2015/08/15/151210

# ファイルを開く
def show(file):
        with open( file, "r") as f:
            for row in f:
                print(row.strip())

# パス内のファイルとディレクトリを返す
def getList(path):
    files = os.listdir(path)
    return files

# "*.*"等で検索
def getListGlob(gobpath):
    files = glob.glob(gobpath)
    return files

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

# http://qiita.com/suin/items/cdef17e447ceeff6e79d
def find_all_files(directory):
    for root, dirs, files in os.walk(directory):
        yield root
        for file in files:
            yield os.path.join(root, file)

# フォルダ内のリストを取得
# http://qiita.com/wanwanland/items/ce272419dde2f95cdabc
for f in find_all_files('./'):
    if isFile(f):
        if re.match(r".*\.swift",os.path.basename(f)):
            # print(f)
            with open( f, "r") as of:
                lines = of.readlines()

            for line in lines:
                #print(line)
                matchOb = re.search(r"class .*", line)
                if matchOb:
                    className = matchOb.group()
                    print(className)