我经常在网上浏览自由艺术。实际上,我想不出更好地利用互联网,而不是把它变成一个巨大的艺术画廊。当我遇到一组我很喜欢的作品时,我将它们全部下载到我的硬盘上。 wget
使这一切变得简单,特别是与Python的print
函数结合使用时,我会一直使用它来制作我wget
的网址列表。假设我需要在'art'目录中下载从art0到art100的jpeg列表,我告诉python
for i in range(0,101):
print "http://somegallery/somedirectory/art", i
所以,这可能是一个相当简单的Python操作,在查找和替换后删除空格,只需要使用wget -i
,但在我知道任何Python之前几天我都会盲目地右键单击并保存。
现在我有一堆来自弗雷德里克斯的文件。在纽约的弗雷泽画廊,所有去了(1-14),b(1-14),c(1-14)等,直到字母g。我可以在7次做到这一点,这比写这个SO问题花费的时间少。
那就是说,我想加深对Python的了解。因此,给定字母a-g,如何打印每个字母到整数1-14的映射?
答案 0 :(得分:4)
for i in ['a','b','c','d','e','f','g']:
for j in range(1,15):
url = BASE_URL + i + str(j)
print url
这就是你要找的东西吗?
答案 1 :(得分:3)
试试这个:
['{0}{1}'.format(letter, number + 1) for letter in 'abcdefg'
for number in range(14)]
答案 2 :(得分:1)
['http://somegallery/somedirectory/art/%s%s\n' % (chr(ordinal), number) for ordinal in range(ord('a'), ord('g')+1) for number in range(1, 15)]
答案 3 :(得分:1)
你实际上并不需要Python。假设您使用bash作为shell(其他shell中存在类似的机制),您可以使用大括号扩展:
wget http://somegallery/somedirectory/art{a..g}{1..15}