同一フォルダ以下にあるcsvファイルを抽出するスクリプト
最近Pythonを勉強し始めています。
とりあえず、同一フォルダ以下にあるcsvファイルを抽出するスクリプトを作成してみました。
# csv_file_search.py import os import re def recursive(path, file_list): dir_list = os.listdir(path) for dirfile in dir_list: abs_dirfile = path + '\\' + dirfile # 絶対パスにする if os.path.isdir(abs_dirfile): recursive(abs_dirfile, file_list) else: file_list.append(abs_dirfile) path = os.path.dirname(__file__) file_list = [] recursive(path, file_list) pattern = re.compile(r'\.csv$') for file in file_list: if pattern.search(file): print file
ちなみに、rubyだとこんな感じ。
# csv_file_search.rb def recursive(path, file_list) Dir::foreach(path) do |dirfile| next if dirfile == "." or dirfile == ".." abs_dirfile = path + "/" + dirfile if FileTest.directory?(abs_dirfile) recursive(abs_dirfile, file_list) else file_list << abs_dirfile end end end file_list = Array.new path = File.dirname(File.expand_path(__FILE__)) recursive(path, file_list) file_list.each{|file| if file =~ /\.csv$/ print file print "\n" end }
また大体同じですね。
unityをいじる場合はrubyが必須なのですが、組み込み系エンジニアは、Pythonの方が向いていると思います。scipyなどで複雑な演算が得意だったり、そもそも処理速度が速かったり、英語圏ではよく使用されているようです。
scipyは毎年シンポジウムもあるようです。
ということで、これからpythonを覚えて、mathcadの代わりにpython+sphinxで出来れば良いなあと考えています。どれだけかかるのやら・・・。