引数のデフォルト値はまあわりと使うので、用意されてるのはありがたい。
#!/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)取得するファイル名が重複してたら上書いてたのを、ユニークになるようにプリフィックスを付けるようにしてみた。