stream=True က ပရောက်စီမှတဆင့် တုံ့ပြန်မှု၏ ကိုယ်ထည်ကို အပြည့်အဝ ဒေါင်းလုဒ်မချမီ လုပ်ဆောင်မှု စတင်နိုင်စေသည်။ CSV အတွက် စာသားလိုင်း ထပ်ခါတလဲလဲကိရိယာကို csv.reader သို့ ပေးပို့ပါ၊ သို့မှသာ ကိုးကားသင်္ကေတများအတွင်းရှိ ခွဲခြားသတ်မှတ်ချက်များနှင့် လိုင်းများစွာ မှတ်တမ်းများသည် CSV ဒေတာအဖြစ် ဆက်လက်ရှိနေမည်။

အစက်ခြားသင်္ကေတ သုံးသော ဥပမာ UTF-8 ဖိုင်အတွက်−

import csv
import requests

routes = {'https': 'http://proxy.example:8080'}
with requests.get(
    'https://data.example/observations.csv',
    proxies=routes,
    stream=True,
    timeout=(5, 30),
) as response:
    response.raise_for_status()
    response.encoding = 'utf-8'
    lines = (
        line + '\n'
        for line in response.iter_lines(
            chunk_size=65536, decode_unicode=True)
    )
    for record in csv.reader(lines, delimiter=';'):
        if record and record[0] == 'wanted':
            print(record)
            break

ဖိုင်၏ အမှန်တကယ် ကုဒ်ပြောင်းခြင်းနှင့် ဒေသိယစကားကို ရွေးပါ။ ခွင့်ပြုထားသော အများသူငှာ ပရောက်စီလမ်းကြောင်းပေါ်ရှိ အများသူငှာ CSV ဒေါင်းလုဒ်အတွက် HTTP ပရောက်စီစာရင်း သည် routes URL အတွက် ကိုယ်စားလှယ်လောင်းများ ပေးသည်။ ဤဗားရှင်းသည် ရုပ်ပိုင်းလိုင်းအဆုံးများကို LF အဖြစ် ပုံမှန်ပြုလုပ်သည်− iter_lines က ၎င်းတို့ကို ဖယ်ရှားပြီး ဂျင်နရေတာက CSV ခွဲခြမ်းစိတ်ဖြာကိရိယာအတွက် လိုင်းအသစ် ပြန်ထည့်သည်။ ကိုးကားသင်္ကေတအတွင်းရှိ အကွက်တစ်ခုသည် အခြားရုပ်ပိုင်းလိုင်းသို့ ဆက်သွားသောအခါ ၎င်းသည် အရေးကြီးသည်။

ထည့်သွင်းထားသော CRLF စာလုံးများကို ဘိုက်တိကျစွာ ထိန်းသိမ်းရန် လိုအပ်သော အလုပ်လုပ်ငန်းစဉ်များအတွက် ထိုလိုင်းအဆုံးများကို ထိန်းသိမ်းသော စီးကြောင်းစာသားထုပ်ပိုးမှု အစီအစဉ်ကို သုံးပါ။ ဥပမာ၏ တမင်ပြုလုပ်သော ပုံမှန်ပြုခြင်းသည် LF ကို ရည်ရွယ်ထားသော ကိုယ်စားပြုမှုအဖြစ် သတ်မှတ်ထားသော မှတ်တမ်းကို ဦးတည်သော လုပ်ဆောင်မှုအတွက် သင့်လျော်သည်။

တုံ့ပြန်မှုတစ်ခု၊ ဖတ်ရှုမှုများစွာ

ထပ်ခါတလဲလဲကိရိယာသည် HTTP တုံ့ပြန်မှုတစ်ခုမှ အပိုင်းများကို သုံးစွဲသည်။ လိုင်းတိုင်းအတွက် တောင်းဆိုမှုအသစ် မထုတ်ပါ။ HTTP Range တောင်းဆိုမှုများသည် အခြားယန္တရားဖြစ်ပြီး CSV မှတ်တမ်းနယ်နိမိတ်များကို သဘာဝအတိုင်း မဖော်ထုတ်ပါ။

response.text ကို ခေါ်ခြင်း သို့မဟုတ် အတန်းအားလုံးကို စာရင်းတစ်ခုထဲ စုဆောင်းခြင်းသည် အကြောင်းအရာတစ်ခုလုံးကို မှတ်ဉာဏ်သို့ ပြန်ယူလာမည်။ စီးကြောင်းလုပ်ဆောင်မှုသည် သယ်ယူပို့ဆောင်ရေး ကြားခံများနှင့် လက်ရှိမှတ်တမ်းအတွက် နေရာ လိုအပ်ဆဲဖြစ်ပြီး မှတ်တမ်းကိုယ်တိုင် ကြီးမားသော အကွက်တစ်ခု ပါဝင်နိုင်သည်။

တုံ့ပြန်မှု အကြောင်းအရာသည် ကွင်းမှ ထွက်သောအခါ ကိုယ်ထည်ကို ပိတ်သည်၊ စောစီးစွာ ကိုက်ညီမှုရှိလျှင်လည်း။ ဖတ်ရှုချိန် ကန့်သတ်ချက်သည် ဝင်လာသော ဒေတာအတွက် စောင့်ဆိုင်းမှုကို ကန့်သတ်သည်၊ ကြီးမားသော ဖိုင်လွှဲပြောင်းမှု၏ စုစုပေါင်း သက်တမ်းကို မဟုတ်ပါ။

ဆက်စပ်ဆောင်းပါးများ