首页 > 解决方案 > 在循环中连接数字和字符串的最干净和 Pythonic 的方法,同时保持零前缀

问题描述

假设我想从网站下载文件,并且文件按此样式列出

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' 

我可以为每个 100 的值编写案例,但我觉得有一种更优雅的方式来编写代码。

标签: python

解决方案


使用格式字符串,您可以执行以下操作:

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))

推荐阅读