سؤال

I have program using http and I want to read data from http:

data = urllib.request.urlopen(someAddress).read()

And prepare from it list of lines like returning lines by readlines() method for file.

How to do it?

هل كانت مفيدة؟

المحلول

urlopen() returns an object that acts just like a file, and supports .readlines():

response = urllib.request.urlopen(someAddress)

lines = response.readlines():

It also supports iteration:

response = urllib.request.urlopen(someAddress)

for line in response:

You already called .read() on the response object; you could also just call str.splitlines() on that:

lines = data.splitlines(True)

where True tells str.splitlines() to preserve line endings.

نصائح أخرى

I usually do something like. I use urllib2, but it shouldn't be so different:

from urllib2 import Request, urlopen

def getPage(link, splitting = '\n'):
    request = Request(link)
    try:
        response = urlopen(request)
    except IOError:
        return -1
    else:
        the_page = response.read()
        return the_page.split(splitting)
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top