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)

ជំនួស URL និងឈ្មោះឯកសារសម្រាប់កម្មវិធី។ សម្រាប់ការទាញយកឯកសារសាធារណៈដែលបានអនុញ្ញាតដោយគ្មានការផ្ទៀងផ្ទាត់ប្រូកស៊ី បញ្ជីប្រូកស៊ី HTTP អាចផ្តល់ចំណុចបញ្ចប់បេក្ខជនសម្រាប់ URL ប្រូកស៊ី។ កម្មវិធីបើក urllib ពិសេសនេះប្រើប្រូកស៊ី HTTP សម្រាប់គោលដៅ HTTPS ជាមួយការផ្ទៀងផ្ទាត់វិញ្ញាបនបត្រធម្មតា។ វាមិនដំឡើងកម្មវិធីបើកសកលទេ។ ការផ្ទៀងផ្ទាត់ ប្រសិនបើចាំបាច់ ត្រូវការការកំណត់ដែលគាំទ្ររបស់វា។

copyfileobj ចម្លងជាបំណែក។ ការចេញពីបរិបទឯកសារបិទវា និងបញ្ចេញការសរសេរដែលបានរក្សាទុកមុនពេល os.replace ដំឡើងឈ្មោះចុងក្រោយ។

ប្រសិនបើសំណើ ឬការចម្លងបង្កើតកំហុស ការប្តូរឈ្មោះត្រូវបានរំលង។ ឯកសារមួយផ្នែកអាចនៅសល់សម្រាប់គោលនយោបាយសម្អាត ហើយលំហូរនេះទុកឯកសារចុងក្រោយដែលមានស្រាប់ដោយមិនប៉ះពាល់នៅពេលបរាជ័យនោះ។ ប្រសិនបើជោគជ័យ ការជំនួសអាចសរសេរជាន់លើឯកសារចុងក្រោយនោះ ដូច្នេះជ្រើសរើសគោលនយោបាយដោយចេតនា។

ប្រើឈ្មោះបណ្ដោះអាសន្នតែមួយគត់សម្រាប់ការងារស្របគ្នា។ វត្ថុបើកដាច់ដោយឡែកមិនការពារការងារដែលចែករំលែកផ្លូវ .part ដូចគ្នាទេ។

ការកំណត់ 20 វិនាទីកំណត់ប្រតិបត្តិការសុខេតដែលគាំទ្រ មិនមែនពេលវេលាទាញយកសរុបទេ។ កាលកំណត់សម្រាប់ការងារទាំងមូលត្រូវការការគ្រប់គ្រងដាច់ដោយឡែកក្នុងកម្មវិធី។ ការបញ្ចប់នៃការផ្ទេរក៏ដាច់ដោយឡែកពីការផ្ទៀងផ្ទាត់ឯកសារដែលបានទាញយក។

អត្ថបទពាក់ព័ន្ធ