Загрузка и обработка растровых файлов в Python? [закрыто]


11

Я довольно новичок в Python и ищу руководство для вопроса, который может показаться тривиальным для многих.

Есть ли способ использовать '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.