Vdaka pomohlo :-) On Tue, 8 May 2018 at 15:26, Michal Molhanec <mol-pyt...@seznam.cz> wrote:
> Ahoj, > > zkusil bych si říct přímo o binární data: > > req = requests.get(file_url, allow_redirects=True, stream=True, > headers={"Accept": "application/vnd.github.v3.raw"}) > Viz https://developer.github.com/v3/git/blobs/#custom-media-types > > S requests ani GITem ale nedělám. > Nicméně tohle mi jsem v rychlosti otestoval a fungovalo mi > > Zdraví > Michal > > Dne 08.05.2018 v 11:01 ZdPo Ster napsal(a): > > Ahojte, > > viem stiahnut velky subor z z githubu takto: > > file_content = requests.get(file_url, allow_redirects=True) > file_data = base64.b64decode(file_content.content) > open(output, 'wb').write(file_data) > > Kedze to dlho trva, chcem tam implementovat progressbar a tu zacinaju moje > problemy ;-). Nasiel som ze by malo fungovat nieco taketo: > > file_size = 19335882 # toto viem vopred > req = requests.get(file_url, allow_redirects=True, stream=True) > block_size = 1024 > num_bars = file_size / (block_size*2) > bar = Bar(f'Downloading {filename}', max=num_bars, > suffix='%(percent).1f%% - %(eta)ds') > bytes_transferred = 0 > with open(output, "wb") as file: > for chunk in req.iter_content(chunk_size=block_size): > bytes_transferred+= len(chunk) > if chunk: > file.write(chunk) > bar.next() > bar.finish() > print(bytes_transferred) > > Moje problem: Velkost prenesenych dat nesedi s velkostou suboru (26640760 > vs 19335882 t.j. progress bar nezobrazuje korektny progress) z dovodu, ze > github namiesto suboru posiela subor zabaleny v json a encodovany v base64. > > Workaround by mohol byt, ze ak viem velkost finalneho suboru, pokusim sa > vypocitat velkost json filu (req.headers.get('Content-Length') v tomto > pripade na githube nefunguje :-( ). Z neho by som po stiahnuti do pamate > extrahoval content, dekodoval ho a az potom ulozil... Otazkou je ci nie je > inteligentnejsi sposob ako to urobit... > > PS: moja testovacia url je: > https://api.github.com/repos/tesseract-ocr/tessdata/git/blobs/b01dab8de8174496a0012bf85296943b3e7c81d7 > > > Zd. > > > _______________________________________________ > Python mailing listpython@py.czhttp://www.py.cz/mailman/listinfo/python > > Visit: http://www.py.cz > > > _______________________________________________ > Python mailing list > python@py.cz > http://www.py.cz/mailman/listinfo/python > > Visit: http://www.py.cz >
_______________________________________________ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz