我目前正在使用以下代码下载一些数据。代码运行良好,除非我想在一年中的某个月停止下载。
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年的第二个月(之前每隔一个月)
如何编辑我的代码来解决此问题?
有很多问题。首先,改变线
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中引发语法错误)。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。