python - 在循环中连接数字和字符串的最干净和 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 的值编写案例,但我觉得有一种更优雅的方式来编写代码。
解决方案
使用格式字符串,您可以执行以下操作:
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))
推荐阅读
- python - 为什么 datetime 对象有时返回日期,有时返回日期和时间?
- go - 停止单个 goroutine 的最佳方法?
- javascript - Vue数据不会随着Promise内部创建而改变
- xamarin - 在 Xamarin 表单中为 Button FontSize 使用命名字体大小
- c++ - C++如何打印数组的前10个和后10个元素?
- angular - 如何避免使用 CustomSerializer 在 Angular 中解码 queryParams
- reactjs - 在 redux-saga 中添加请求删除产品项时页面加载时间很长
- git - Git如何存储目录信息?
- arrays - 如何将 JSON 数组中的值解析为 BigQuery 中的列
- python - 如何标记学生在场/缺席 python