今日も 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 (以下略)
「コマンドライン引数のワイルドカードを展開する」への2件のフィードバック