Sou bastante novo em python e busco orientação para uma pergunta que possa parecer trivial para muitos.
Existe uma maneira de usar 'wget' em um script python para baixar arquivos raster de um servidor e processá-los no mesmo script?
O Python possui o urllib2 embutido, que abre um objeto semelhante a um ponteiro de arquivo a partir de um recurso 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)
Você pode transferir e gravar os bytes localmente (por exemplo, faça o download):
# 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))
Agora você pode fazer o que quiser com o arquivo.
Algumas maneiras de conseguir isso. Você pode usar o módulo subprocesso para chamar wget - consulte http://docs.python.org/library/subprocess.html
import subprocess
retcode = subprocess.call(["wget", args])
Ou você pode usar o python para baixar o arquivo diretamente usando o módulo urllib (ou urllib2) - http://docs.python.org/library/urllib.html . Existem exemplos na documentação.
fonte
Nesta resposta anterior, há um método usando uma chamada para os.system.
fonte