2

我已经检查了我在这个论坛中找到的另一个答案在 Python 中,给定一个文本文件的 URL,读取文本文件内容的最简单方法是什么?

它很有用,但是如果您在这里查看我的 URL 文件http://baldboybakery.com/courses/phys2300/resources/CDO6674605799016.txt

您会注意到这里有大量数据。所以当我使用这段代码时:

import urllib2

data =
urllib2.urlopen('http://baldboybakery.com/courses/phys2300/resources/CDO6674605799016.txt').read(69700) # read only 69700 chars

data = data.split("\n") # then split it into lines

for line in data:

      print line

python 可以使用 URL 文件中的标题读取的字符数量为 69700 个字符,但我的问题是我需要其中的所有数据,大约 30000000 个字符左右。

当我输入这么多字符时,我只显示了一大块数据,而不是全部数据,URL 文件数据中每一列的标题都消失了。帮忙解决这个问题??

4

2 回答 2

3

你要在这里做的是分块读取和处理数据,例如:

import urllib2
f = urllib2.urlopen('http://baldboybakery.com/courses/phys2300/resources/CDO6674605799016.txt')
while True:
    next_chunk = f.read(4096) #read next 4k
    if not next_chunk: #all data has been read
        break
    process_chunk(next_chunk) #arbitrary processing
f.close()
于 2013-10-02T17:09:22.207 回答
0

简单的方法工作得很好:

如果要逐行检查文件:

for line in urllib2.urlopen('http://baldboybakery.com/courses/phys2300/resources/CDO6674605799016.txt'):
    # Do something, like maybe print the data:
    print line,

或者,如果您想下载所有数据:

data = urllib2.urlopen('http://baldboybakery.com/courses/phys2300/resources/CDO6674605799016.txt')
data = data.read()
sys.stdout.write(data)
于 2013-10-02T17:25:30.980 回答