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 אָדער זאַמלען אַלע רייען אין אַ רשימה וואָלט צוריקגעבראַכט דעם גאַנצן אינהאַלט אין זכּרון. סטרימען דאַרף נאָך אַלץ פּלאַץ פֿאַר טראַנספּאָרט־בופֿערס און דעם איצטיקן רעקאָרד, וואָס קען אַליין אַנטהאַלטן אַ גרויס פֿעלד.

דער ענטפֿער־קאָנטעקסט פֿאַרמאַכט דעם קערפּער ווען דער קרייַז גייט אַרויס, אַרײַנגערעכנט בײַ אַ פֿריִיִקער פּאַסונג. דער לייען־צײַטגרענץ באַגרענעצט דאָס וואַרטן אויף אַרײַנקומענדיקע דאַטן, נישט דעם גאַנצן לעבנס־צײַט פֿון אַ גרויסן טעקע־איבערגאַנג.

פֿאַרבונדענע אַרטיקלען