Python: urllib 问题

Python: Urllib problems

我是计算机科学的新手。在我的 class 中,我们正在处理一个处理地震数据和文本文件的项目,具体来自以下站点:

http://www.choongsoo.info/teach/mcs177-sp12/projects/earthquake/earthquakeData-02-23-2012.txt

这是项目的信息。

为采用格式 YYYY/MM/DD 的两个日期的过程 parseEarthquakeData 编写合同、文档字符串和实现,从上述 USGS URL 和 returns a 访问地震数据代表纬度、经度、震级和深度的四个数字列表的列表。外部列表应包含给定日期之间每次地震的这四个数字列表之一。

注意:如果您有第一版教科书,它有两个错误已在第二版中得到纠正。首先,第一版教科书有一个错字:用urllib.request代替urllib。其次,请记住,您需要将从网络上读取的任何内容解码为 ASCII。例如,如果将字符串读入变量 myString,则可以通过以下方式对其进行解码:

decodedString = 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合同是空的,因为我通常最后做。

看起来您可能在编写代码之前浏览了一些 Python 2.7 示例?

在Python 3、urlopen函数不在urllib里面,在urllib.request里面。所以你脚本中的第一行应该是:

from urllib.request import urlopen

然后只需使用下面的urlopen

但是,如果您的 class 使用 Python 2 作为其代码示例,您最好安装 Python 2.7(但请告诉您的讲师请切换到 Python 3!).