假设我想从网站下载文件,文件按此样式列出
www.website.com/file001.mp3
www.website.com/file002.mp3
www.website.com/file003.mp3
.
.
.
www.website.com/file451.mp3
www.website.com/file452.mp3
www.website.com/file453.mp3
我想制作一些代码,使用循环下载这些内容。
for i in range(1, 454):
downloadFunction('www.website.com/file00'+i+'.mp3')
当 i 大于 9 时,这将不起作用,因为这样串联看起来像
'www.website.com/file0010.mp3'
而不是
'www.website.com/file010.mp3'
我可以为每个百分之一的值编写大小写代码,但我有一种感觉,有一种更优雅的方法来编码它。
使用 a 格式字符串,您可以执行以下操作:
url_template = 'www.website.com/file{:03}.mp3'
for i in range(9, 12):
print(url_template.format(i))
输出:
www.website.com/file009.mp3
www.website.com/file010.mp3
www.website.com/file011.mp3
因此,对于您的应用:
url_template = 'www.website.com/file{:03}.mp3'
for i in range(1, 454):
downloadFunction(url_template.format(i))
您可以使用zfill
,这是一个用前导零填充字符串的字符串函数。在您的情况下:
for i in range(1, 454):
downloadFunction('www.website.com/file{}.mp3'.format(str(i).zfill(3)))
你可以做downloadFunction('www.website.com/file%03d.mp3' % i)
。%
是占位符,d
是数字格式说明符。03
告诉 Python 最多填充三个字符。
使用:
for i in range(1, 454):
downloadFunction('www.website.com/file'+str(i).rjust(3,'0')+'.mp3')
相反。