Ku qulqulso soo dejinta boroksi ee faylka Python urllib
Ku qulqulso soo dejinta boroksi fayl ku meel gaar ah, oo faaf magaca faylka ugu dambeeya kaliya marka nuqulka dhammaado.
import os
import shutil
from urllib.request import ProxyHandler, build_opener
proxy = 'http://proxy.example.net:8080'
opener = build_opener(ProxyHandler({
'http': proxy,
'https': proxy,
}))
temporary = 'archive.zip.part'
destination = 'archive.zip'
with opener.open('https://downloads.example.net/archive.zip',
timeout=20) as response:
with open(temporary, 'wb') as output:
shutil.copyfileobj(response, output)
os.replace(temporary, destination)Beddel URL-yada iyo magacyada faylasha ee codsiga. Soo dejinta fayl dadweyne oo la ogolaaday oo aan lahayn xaqiijinta boroksi, liiska boroksiyada HTTP waxay bixin kartaa meelo dhambeed oo musharrax ah URL-ga boroksi. Furitaankan urllib ee gaarka ah wuxuu u isticmaalaa boroksi HTTP goob HTTPS oo leh xaqiijinta shahaadada caadiga ah. Ma rakibo furitaan caalami ah; xaqiijinta, haddii loo baahdo, waxay u baahan tahay habayntiisa la taageeray.
copyfileobj wuxuu nuqulaa qaybo. Ka bixista macnaha faylka waxay xirtaa faylka oo waxay daadinaysaa qoraallada kaydka ah ka hor inta os.replace uusan dhigin magaca ugu dambeeya.
Haddii codsiga ama nuqulku kiciyo khalad, magac beddelka waa la boodaa. Fayl qayb ah ayaa laga yaabaa inuu u hadho siyaasadda nadiifinta, oo qulqulkaani wuxuu ka tago faylka ugu dambeeya ee jira isagoo aan taabasho lagu samayn khaladkaas. Marka guul la gaaro, beddelku wuxuu qori karaa faylkaas ugu dambeeya, marka siyaasadda si ula kac ah u dooro.
Isticmaal magacyo ku meel gaar ah oo gaar ah shaqooyinka isku mar ah. Walxaha furitaanka ee gooni ah ma ilaaliyaan shaqooyinka wadaaga isla jidka .part.
Dejinta 20 ilbiriqsi waxay xaddidaa hawlgallada socket ee la taageeray, ma aha wadarta waqtiga soo dejinta. Waqti kama dambays ah shaqada oo dhan wuxuu u baahan yahay maarayn gooni ah codsiga. Dhamaystirka wareejinta sidoo kale waa gooni ka ah xaqiijinta faylka la soo dejiyay.