#python #naukaprogramowania możę ktoś będzie się orientował, chodzi o pobieranie pliku ZIP z url'a oraz rozpakowywaniu go i operacji na pliku w Pythonie. Tu jest kod :
@mprzemo: rozumiem, tylko jak 'odpalać' tą funkcję, pod względem składni. Innymi, słowy, co wpisać żeby iterować po plikach w zipie wewnątrz tej funkcji
@mprzemo: po prostu gdy wywołuję tą funkcję, i potem próbuję coś zrobić z danymi, to wg. Pythona operuję na objekcie "generator" , i nic z tym dalej nie moge zrobiic
@mprzemo: tzn. to tego konrketnego pliku będzie tylko jeden CSV . i chociaż interesuje mnie ta opcja z wieloma plikami i iterowanie po nich , tylko najpierw chciałbym odpalic dla jednego pliku, zeby sobie ruszyc dalej z projektem i nie zamulić
@JungleJamPL: z = download_extract_zip(url) a = next(z)[1] teraz masz przypisany plik do zmiennej a, jak chcesz iść do kolejnego pliku w zipie to znów musisz użyć next().
'pliczek.csv' to ten do którego chce się dostać . ale wszelkie polecenia typu :
zipfile.open()
zipfile.read()
czy zipfile.readlines()
nie dzialajo
@JungleJamPL: pisz do nich bo ewidentnie znalazłeś błąd. dokumentacja mówi, że read musi działać:
With mode 'r' the file-like object (ZipExtFile) is read-only and provides the following methods: read(), readline(), readlines(), seek(), tell(), _iter(), next_(). These objects can operate independently of the ZipFile.
@mprzemo: a teraz ten plik pod zmienno "a" , on już jest rozpakowany czy musze go jeszcze raz zipfile.ZipFile rozpakowac ? bo w tym pliku ZIP był plik CSV , a mimo to gdy daje na niego type(a) to wychodzi:
@mprzemo: ok, bo tak jak proboje na tym pliku zrobić a.read() albo a.readlines() etc. to wyskakuje błąd: a.readlines() ValueError: I/O operation on closed file.
a jak daje type(a) to jest :
a dla a.read():
AttributeError: 'NoneType' object has no attribute 'seek'
jak możesz to zerknąć to proszę, tutaj podaję url z ktorego korzystam. to jest plik zip w którym jest CSV
https://pastebin.com/x26fP3iA
wykorzystany jest w nim generator. Orientuje się ktoś jak to działa i jak tego używać? Dzięki
with thezip.open(zipinfo) as thefile:
jak to napisać żeby poprostu móc zyskać dostęp do tego pliku i dalej go sobie przeczytać (docelowo jest to plik csv)
for filename, zipfile in download_extract_zip(url): do_something_with(filename or zipfile)'pliczek.csv' to ten do którego chce się dostać . ale wszelkie polecenia typu :
zipfile.open()
zipfile.read()
czy zipfile.readlines()
nie dzialajo
z = download_extract_zip(url)
a = next(z)[1]
teraz masz przypisany plik do zmiennej a, jak chcesz iść do kolejnego pliku w zipie to znów musisz użyć next().
@JungleJamPL: pisz do nich bo ewidentnie znalazłeś błąd. dokumentacja mówi, że
readmusi działać:a.readlines()
ValueError: I/O operation on closed file.
a jak daje type(a) to jest :
a dla a.read():
AttributeError: 'NoneType' object has no attribute 'seek'
jak możesz to zerknąć to proszę, tutaj podaję url z ktorego korzystam.
to jest plik zip w którym jest CSV