Pobieranie i przetwarzanie plików rastrowych w Pythonie? [Zamknięte]

11

Jestem całkiem nowy w Pythonie i szukam wskazówek dla pytania, które dla wielu może wydawać się trywialne.

Czy istnieje sposób użycia „wget” w skrypcie Pythona do pobierania plików rastrowych z serwera i przetwarzania ich w tym samym skrypcie?

Ibe
źródło

Odpowiedzi:

14

Python ma wbudowane urllib2 , które otwierają obiekt podobny do wskaźnika pliku z zasobu IP (HTTP, HTTPS, FTP).

import urllib2, os

# See http://data.vancouver.ca/datacatalogue/2009facetsGridSID.htm
rast_url = 'ftp://webftp.vancouver.ca/opendata/2009sid/J01.zip'
infp = urllib2.urlopen(rast_url)

Następnie możesz przesłać i zapisać bajty lokalnie (tj. Pobrać):

# Open a new file for writing, same filename as source
rast_fname = os.path.basename(rast_url)
outfp = open(rast_fname, 'wb')

# Transfer data .. this can take a while ...
outfp.write(infp.read())
outfp.close()

print('Your file is at ' + os.path.join(os.getcwd(), rast_fname))

Teraz możesz zrobić, co chcesz z plikiem.

Mike T.
źródło
1
+1 Może się to wydawać nieco bardziej skomplikowane, ale będzie bardziej przenośne i łatwiejsze do debugowania, ponieważ nie masz zewnętrznych zależności.
Sean