开发者社区> 问答> 正文

编辑代码以在特定月份和年份停止下载

我目前正在使用以下代码下载一些数据。代码运行良好,除非我想在一年中的某个月停止下载。

import urllib

year = 2006
max_year = 2019
month = 01
max_month = 01
host = "http://www.aemo.com.au/aemo/data/nem/priceanddemand/PRICE_AND_DEMAND_"
ending = "_QLD1.csv"

while month <= max_month and year <= max_year:

if len(str(month)) < 2:
    url = host+str(year)+"0"+str(month)+ending
else:
    url = host+str(year)+str(month)+ending
print(url)
urllib.urlretrieve(url, url.lstrip(host))
print("Done " + url)
if month == max_month:
    month = 01
    year = year + 1
else:
    month = month + 1

例如,如果我想在月份= 02和年份= 2019时停止下载,它就不起作用。我将最大月份设置为02,最大年份设置为2019年,然后它只下载每年的第二个月而不是2019年的第二个月(之前每隔一个月)

如何编辑我的代码来解决此问题?

展开
收起
一码平川MACHEL 2019-01-22 10:36:39 1383 0
1 条回答
写回答
取消 提交回答
  • 有很多问题。首先,改变线

    while month <= max_month and year <= max_year:

    while month < max_month or year < max_year:
    正如你想要的那样,当任一条件为真时,循环就会继续。然后,改变线

    if month == max_month:

    if month == 12:
    您还应该删除尾随0s(例如month = 01),因为它们在Python 2中将被视为八进制(并在Python 3中引发语法错误)。

    2019-07-17 23:26:09
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载