在计算机科学方面,我是一名新手。在我的班上,我们正在开发一个处理地震数据和文本文件的项目,特别是来自这个网站:
http://www.choongsoo.info/teach/mcs177-sp12/projects/earthquake/earthquakeData-02-23-2012.txt
以下是该项目的信息。
编写一个过程parseEarthquakeData的合同,docstring和实现,该过程以YYYY / MM / DD格式获取两个日期,从上面的USGS URL访问地震数据并返回表示纬度,经度的四个数字列表,幅度和深度。外部列表应包含给定日期之间每次地震的这四个数字列表中的一个。
注意:如果您有第一版的教科书,则会有两个错误在第二版中得到纠正。首先,第一版教科书有一个错字:使用urllib.request而不是urllib。其次,请记住,您需要将从网络上读取的任何内容解码为ASCII。例如,如果将字符串读入变量myString,则可以通过以下方式对其进行解码:
encodedString = myString.decode('ascii')
到目前为止我所拥有的是:
import urllib
#
def parseEarthquakeData(date1,date2):
quakeFile=urllib.urlopen('http://www.choongsoo.info/teach/mcs177-sp12/projects/earthquake/earthquakeData-02-23-2012.txt')
latitude=[]
longitude=[]
magnitude=[]
depth=[]
for i in quakeFile:
i=i.decode('ascii')
splitData=i.split(',')
if betweenDates(splitData[0],date1,date2):
latitude.append(splitData[2])
longitude.append(splitData[3])
magnitude.append(splitData[4])
depth.append(splitData[5])
totalList=[]
totalList.append(latitude)
totalList.append(longitutde)
totalList.append(magnitude)
totalList.append(depth)
return totalList
当我将函数输入python shell时,我得到了这个:
parseEarthquakeData("2012/02/23","2012/02/22")
Traceback (most recent call last):
File "<pyshell#68>", line 1, in <module>
parseEarthquakeData("2012/02/23","2012/02/22")
File "/Users/BaronRitic/Desktop/Python/Project 6/betweenDates.py", line 17, in parseEarthquakeData
quakeFile=urllib.urlopen('http://www.choongsoo.info/teach/mcs177-sp12/projects/earthquake/earthquakeData-02-23-2012.txt')
AttributeError: module 'urllib' has no attribute 'urlopen'
我有Python版本3.5.1 我对所有条款和流程仍然相对较新。我不完全确定如何使用urllib模块。任何帮助将不胜感激!
PS合同是空的,因为我通常最后这样做。
答案 0 :(得分:0)
在编写代码之前,您可能已经看过一些Python 2.7示例了吗?
在Python 3中,urlopen函数不在urllib中,它在urllib.request
内。所以脚本中的第一行应该是:
from urllib.request import urlopen
然后只需使用下面的urlopen
。
但是,如果您的类使用Python 2作为代码示例,那么最好安装Python 2.7(但请告诉您的教师请切换到Python 3!)。