Search code examples
pythonurllib2

Using urllib2 to download text to be used to evaluate a variable


Am downloading a text page, c.txt, from a webserver. c.txt only contains the letter 'c' . Able to download file fine and print its contents, the character 'c'. Cannot, however, use its contents in the code below:

import urllib2

req = urllib2.Request('http://localhost/c.txt')
response = urllib2.urlopen(req)
result = str(response.read())
print(result) # prints 'c' just fine
furl = "c"
furl = str(furl)
if result == furl: # Does not work
     print('Correct')  

No errors are incurred. Just will not work


Solution

  • There is most likely an extra white space character in the result. You can check for it by printing characters on either side.

    print '>%s<' % result
    

    If the result looks like >c < you've got a trailing white space (including newline characters).

    To remove the leading and trailing white space from a string, you can use the strip() method on the string.

    result = str(response.read()).strip()
    

    Or you can do it right at the point of comparison.

    if result.strip() == furl:
        print 'correct'