2011-07-03 2 views
1

ok ur는 urllib을 사용하여 url을 열려고하지만 파일이 너무 커서 url을 열면 python이 멈 춥니 다. 또한 wxpython을 사용하여 URL을 열 때도 멈 춥니 다. 내 CPU가 거의 100에 도달합니다. URL을 열 때의 %url이 너무 큰 경우 urllib 동결!

모든 솔루션? 거기에 청크에있는 URL을 열 수 있고 어쩌면 거기에 time.sleep (0.5)가있을 수 있도록 동결되지 않습니다? 그래서 당신의 UI 스레드가 다운로드 스레드가 별도로 작업을 수행하는 동안 작업을 계속

f = open("hello.txt",'wb') 
datatowrite = urllib.urlopen(link).read() 
f.write(datatowrite) 
f.close() 

감사

+0

여기 얼마나 큰 소리로 말하는거야? – Shog9

+0

최대 10-20 mg – nmnm

+0

아. 다운로드하는 동안 UI를 잠그지 않으려 고하는 것일뿐입니다. 나는 그것이 * 결국 * 그 크기의 다운로드를 완료한다고 가정한다? ...? 비동기 다운로드가 필요한 것 같습니다. – Shog9

답변

1

당신은 별도의 스레드로 다운로드를 분할 할 : 이 내 코드입니다. 그렇게하면 다운로드가 진행되는 동안 "고정"되지 않습니다.

여기 스레딩에 대해 자세히 알아보기 :

http://docs.python.org/library/threading.html

양자 택일로, 당신은 컬이나 wget을을 사용하여 파이썬의 외부에서 파일을 다운로드하도록 시스템을 사용할 수 있습니다.