문제

사용 중입니다 urllib2 페이지에서 읽으려면. 소스에 대한 빠른 재 녹화를하고 몇 가지 변수를 꺼내야하지만 urllib2 문자열이 아닌 파일 객체로 표시됩니다.

나는 Python을 처음 접했기 때문에 파일 개체를 사용 하여이 작업을 수행하는 방법을보기 위해 고군분투하고 있습니다. 이것을 문자열로 변환하는 빠른 방법이 있습니까?

도움이 되었습니까?

해결책

대화 형 모드에서 Python을 사용하여 솔루션을 검색 할 수 있습니다.

만약에 f 당신의 대상, 당신은 입력 할 수 있습니다 dir(f) 모든 방법과 속성을 볼 수 있습니다. 전화가 있습니다 read. 입력하다 help(f.read) 그리고 그것은 당신에게 그것을 알려줍니다 f.read() 파일 객체에서 문자열을 검색하는 방법입니다.

다른 팁

문서에서 file.read () (내 강조) :

file.read ([size])

파일에서 대부분의 크기 바이트를 읽습니다 (크기 바이트를 얻기 전에 읽기가 EOF에 도달하는 경우). 크기 인수가 음수이거나 생략되면 EOF에 도달 할 때까지 모든 데이터를 읽으십시오. 바이트는 문자열 객체로 반환됩니다. EOF가 즉시 발생하면 빈 문자열이 반환됩니다. (TTYS와 같은 특정 파일의 경우 EOF가 치면 계속 읽는 것이 합리적입니다.)이 방법은 가능한 한 크기의 바이트에 가까운 바이트를 획득하기 위해 기본 C 기능을 두 번 이상 호출 할 수 있습니다. 또한 비 차단 모드에서는 크기 매개 변수가 주어지지 않더라도 요청 된 것보다 적은 데이터가 반환 될 수 있습니다.

큰 문자열 객체의 regexp 검색이 효율적이지 않을 수 있으며, 검색 라인별로 사용하는 것을 고려하십시오. file.next () (파일 객체는 자체 반복자입니다).

Michael Foord, AKA voidspace는 Urllib2에 대한 훌륭한 자습서를 통해 여기에서 찾을 수 있습니다.urllib2- 누락 된 매뉴얼

당신이하고있는 일은 매우 간단해야합니다.이 샘플 코드를 관찰하십시오.

import urllib2
import re
response = urllib2.urlopen("http://www.voidspace.org.uk/python/articles/urllib2.shtml")
html = response.read()
pattern = '(V.+space)'
wordPattern = re.compile(pattern, re.IGNORECASE)
results = wordPattern.search(html)
print results.groups()
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top