Завантаження та обробка растрових файлів у Python? [зачинено]


11

Я досить новачок у пітоні і шукаю настанову на питання, яке може здатися тривіальним для багатьох.

Чи є спосіб використовувати "wget" в сценарії python для завантаження растрових файлів з сервера та обробляти їх у тому ж сценарії?

Відповіді:


14

У Python є вбудований urllib2 , який відкриває файл-вказівник-об’єкт із 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)

Потім ви можете передати та записати байти локально (тобто завантажити його):

# 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))

Тепер ви можете робити все, що завгодно, з файлом.


1
+1 Це може здатися трохи складніше зробити це таким чином, але це буде більш портативно і буде простіше налагоджувати, оскільки у вас немає зовнішніх залежностей.
Шон

5

Кілька способів досягти цього. Ви можете використовувати модуль підпроцесу для виклику wget - див. Http://docs.python.org/library/subprocess.html

import subprocess

retcode = subprocess.call(["wget", args])

Або ви можете використовувати python для завантаження файлу безпосередньо за допомогою модуля urllib (або urllib2) - http://docs.python.org/library/urllib.html . У документації є приклади.


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.