Woodz
Lieutenant
- Registriert
- Apr. 2009
- Beiträge
- 719
Hallo.
Ich möchte gern .tar-Dateien asynchron downloaden und aus dem Arbeitsspeicher direkt verarbeiten ohne sie vorher auf der Platte speichern zu müssen.
Hier mein Quelltext:
Das Problem ist, dass ich als Fehlerausgabe immer "embedded null byte" erhalte. Auch ein Verarbeiten mittels io.BytesIO() liefert nicht das gewünschte Ergebnis. Da erhalte ich die Fehlermeldung "expected str, bytes or os.PathLike object, not BytesIO".
Hat hier jemand eine Idee?
Grüße
Ich möchte gern .tar-Dateien asynchron downloaden und aus dem Arbeitsspeicher direkt verarbeiten ohne sie vorher auf der Platte speichern zu müssen.
Hier mein Quelltext:
Python:
import aiohttp
import asyncio
import tarfile
urls = [
'https://opendata.dwd.de/weather/radar/composite/wn/composite_wn_20250604_0950.tar',
'https://opendata.dwd.de/weather/radar/composite/wn/composite_wn_20250604_0955.tar',
'https://opendata.dwd.de/weather/radar/composite/wn/composite_wn_20250604_1000.tar'
]
# =======================================================================================
async def main(urls):
try:
async with aiohttp.ClientSession() as session:
ret = await asyncio.gather(*(get(url, session) for url in urls))
except Exception as e:
print(f'{e}')
# =======================================================================================
async def get(url, session):
try:
async with session.get(url=url) as response:
if response.ok:
requested_file = await response.read()
with tarfile.open(requested_file, 'r') as tar:
print(tar.getmembers())
else:
print(response.reason)
except Exception as e:
print(f'{e}')
# =======================================================================================
asyncio.run(main(urls))
Das Problem ist, dass ich als Fehlerausgabe immer "embedded null byte" erhalte. Auch ein Verarbeiten mittels io.BytesIO() liefert nicht das gewünschte Ergebnis. Da erhalte ich die Fehlermeldung "expected str, bytes or os.PathLike object, not BytesIO".
Hat hier jemand eine Idee?
Grüße