引数のデフォルト値はまあわりと使うので、用意されてるのはありがたい。
#!/usr/bin/env python import os import os.path import sys import urlparse import urllib import datetime def get_prefix_uniq_name (dir, f_name, char_code = 65): if not os.path.exists(dir + "/" + f_name): return "" else: for _cnt in range(char_code, 123): uniq_f_name = chr(_cnt) + f_name if not os.path.exists(dir + "/" + uniq_f_name): return chr(_cnt) if len(sys.argv) == 1: print "select url" sys.exit() dir = os.getenv('HOME') + "/Documents/" + datetime.date.today().strftime('%Y%m%d') if not os.path.exists(dir): os.mkdir(dir) os.chdir(dir) url = sys.argv[1] file_name = urlparse.urlparse(url)[2].split('/')[-1] base = '/'.join(url.split('/')[0:-1]) base_name = file_name.split('.')[0][0:-2] max = file_name.split('.')[0][-2:] prefix = get_prefix_uniq_name(os.getcwd(), base_name + "01.jpg") for i in range(1, int(max) + 1): file_name = base_name + str(i).zfill(2) + ".jpg" get_url = base + "/" + file_name urllib.urlretrieve(get_url, prefix + file_name)
取得するファイル名が重複してたら上書いてたのを、ユニークになるようにプリフィックスを付けるようにしてみた。