A curl parancsban a -J -O kapcsolót miként lehet Python request kérésre átkonvertálni?
curl -n -J -O -X GET $URL/$id
Az URL maga nem tartalmazza a file nevet, csak a response-ban lenne jelen a filename. Ennek a letöltéséhez segítség a -J -O kapcsolók.
Eddig itt tartok:
filename="foobar"
with requests.get(uri, headers=headers, stream=True) as resp:
with open(filename, "wb") as f:
for chunk in resp.iter_content(chunk_size=4096):
if chunk: # filter out keep-alive new chunks
f.write(chunk)
f.flush()
Csakhogy itt a foobar név nem lesz hasznos. Mást meg honnan hatnék?
Indentet megette a fórum, úgyhogy újra:
with requests.get(uri, headers=headers, stream=True) as resp:
__with open(filename, "wb") as f:
____for chunk in resp.iter_content(chunk_size=4096):
______if chunk: # filter out keep-alive new chunks
________f.write(chunk)
____f.flush()
Először is azt ajánlanám, hogy valamilyen kód megosztót használj és ne itt a gyk-n posztold a kódot, mert a formátum teljesen tönkremegy.
Szóval, az a lényeg, hogy amikor elküldöd a requestet, akkor a file nevet ki kell olvasni a response header-ből. Aztán eltárolod a file nevét és ezt használod a mentéshez. Így tudod kiolvasni: print(response.headers) Ha van egy URL, amit megoszthasz rá tudok nézni
A content-disposition headerben benne kéne lennie a fájlnévnek:
>>> resp.headers['content-disposition']
'inline; filename="asdasdasd.pdf"'
Köszi mind2-t :)
Adja.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!