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 ਕਾਲ ਕਰਨਾ ਜਾਂ ਸਾਰੀਆਂ ਕਤਾਰਾਂ ਨੂੰ ਸੂਚੀ ਵਿੱਚ ਇਕੱਠਾ ਕਰਨਾ ਪੂਰੀ ਸਮੱਗਰੀ ਨੂੰ ਮੁੜ ਮੈਮੋਰੀ ਵਿੱਚ ਲਿਆਵੇਗਾ। ਸਟ੍ਰੀਮਿੰਗ ਨੂੰ ਅਜੇ ਵੀ ਟ੍ਰਾਂਸਪੋਰਟ ਬਫਰ ਅਤੇ ਮੌਜੂਦਾ ਰਿਕਾਰਡ ਲਈ ਥਾਂ ਚਾਹੀਦੀ ਹੈ, ਜਿਸ ਵਿੱਚ ਆਪਣੇ ਆਪ ਵਿੱਚ ਵੱਡਾ ਖੇਤਰ ਹੋ ਸਕਦਾ ਹੈ।

ਜਵਾਬ ਸੰਦਰਭ ਲੂਪ ਤੋਂ ਬਾਹਰ ਨਿਕਲਣ ਵੇਲੇ ਬਾਡੀ ਬੰਦ ਕਰਦਾ ਹੈ, ਜਲਦੀ ਮੇਲ ਖਾਣ 'ਤੇ ਵੀ। ਪੜ੍ਹਤ ਸਮਾਂ-ਸੀਮਾ ਆਉਂਦੇ ਡੇਟਾ ਦੀ ਉਡੀਕ ਨੂੰ ਸੀਮਿਤ ਕਰਦੀ ਹੈ, ਵੱਡੀ ਫਾਈਲ ਤਬਦੀਲੀ ਦੀ ਕੁੱਲ ਉਮਰ ਨੂੰ ਨਹੀਂ।

ਸੰਬੰਧਿਤ ਲੇਖ