今日も Python ネタ。
とかいいつつ Ruby の話から入るけど、Ruby はコマンドラインのワイルドカードを展開してくれる。
^o^ > type argv.rb ARGV.each {|a| puts a} ^o^ > ruby argv.rb *.py argv.py binary_search.py bubble_sort.py counting_sort.py count_char.py count_files.py csv_read.py csv_write.py default_arg.py dict.py dictionary.py dict_keys.py difference.py difference2.py enumerate.py exception1.py exception2.py exception3.py expand_num.py (以下略)
でも、Python はそんな気の利いたことしてくれない。
^o^ > type argv.py import sys print sys.argv ^o^ > python argv.py *.py ['argv.py', '*.py']
そこで、glob モジュールの出番になる。
cf. 10.7. glob — Unix 形式のパス名のパターン展開
import sys import glob files = glob.glob(sys.argv[1]) for file in files: print file
実行:
^o^ > python argv2.py *.py argv.py argv2.py binary_search.py bubble_sort.py counting_sort.py count_char.py count_files.py csv_read.py csv_write.py default_arg.py dict.py dictionary.py dict_keys.py difference.py difference2.py enumerate.py exception1.py exception2.py exception3.py expand_num.py (以下略)