{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Accediendo a servidores con FTP\n",
"\n",
"La biblioteca estandar de python nos permite acceder de una manera simple a servidores FTP haciendo uso del modulo *[ftplib](https://docs.python.org/3.5/library/ftplib.html)*"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"'230 Login successful.'"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from ftplib import FTP\n",
"import os\n",
"\n",
"url = 'ftp.cpc.ncep.noaa.gov'\n",
"ftp = FTP(url) # connect to host, default port\n",
"ftp.login() # user anonymous, passwd anonymous@"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Notar que aunte que no exista necesidad de hacer un login en el servidor, de todas maneras hay que utilizar el método *.login()*\n",
"\n",
"## Elementos del directorio"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"-rwxr-xr-x 1 ftp ftp 587104 May 19 2014 prate.01.CFSv2.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 530096 May 19 2014 prate.01.CMC1.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 570816 May 19 2014 prate.01.CMC2.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 597516 May 19 2014 prate.01.GFDL.clim.1x1.grb\n",
"-rw-r--r-- 1 ftp ftp 807300 Sep 01 2015 prate.01.GFDL_FLOR.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 611542 May 19 2014 prate.01.NASA.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 521952 May 19 2014 prate.01.NCAR.clim.1x1.grb\n",
"-rw-r--r-- 1 ftp ftp 578960 Sep 01 2015 prate.01.NCAR_CCSM4.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 587104 May 19 2014 prate.02.CFSv2.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 538240 May 19 2014 prate.02.CMC1.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 554528 May 19 2014 prate.02.CMC2.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 597516 May 19 2014 prate.02.GFDL.clim.1x1.grb\n",
"-rw-r--r-- 1 ftp ftp 807300 Sep 01 2015 prate.02.GFDL_FLOR.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 619688 May 19 2014 prate.02.NASA.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 521952 May 19 2014 prate.02.NCAR.clim.1x1.grb\n",
"-rw-r--r-- 1 ftp ftp 570816 Sep 01 2015 prate.02.NCAR_CCSM4.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 587104 May 19 2014 prate.03.CFSv2.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 538240 May 19 2014 prate.03.CMC1.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 554528 May 19 2014 prate.03.CMC2.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 597516 May 19 2014 prate.03.GFDL.clim.1x1.grb\n",
"-rw-r--r-- 1 ftp ftp 807300 Sep 01 2015 prate.03.GFDL_FLOR.clim.1x1.grb\n",
"-rw-r--r-- 1 ftp ftp 807300 May 19 2014 prate.03.GFDL_FLORa06.clim.1x1.grb\n",
"-rw-r--r-- 1 ftp ftp 807300 May 19 2014 prate.03.GFDL_FLORb01.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 619688 May 19 2014 prate.03.NASA.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 521952 May 19 2014 prate.03.NCAR.clim.1x1.grb\n",
"-rw-r--r-- 1 ftp ftp 570816 Sep 01 2015 prate.03.NCAR_CCSM4.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 513718 May 19 2014 prate.04.CFSv2.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 554528 May 19 2014 prate.04.CMC1.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 546384 May 19 2014 prate.04.CMC2.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 597516 May 19 2014 prate.04.GFDL.clim.1x1.grb\n",
"-rw-r--r-- 1 ftp ftp 807300 Sep 01 2015 prate.04.GFDL_FLOR.clim.1x1.grb\n",
"-rw-r--r-- 1 ftp ftp 807300 May 19 2014 prate.04.GFDL_FLORa06.clim.1x1.grb\n",
"-rw-r--r-- 1 ftp ftp 807300 May 19 2014 prate.04.GFDL_FLORb01.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 619688 May 19 2014 prate.04.NASA.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 521952 May 19 2014 prate.04.NCAR.clim.1x1.grb\n",
"-rw-r--r-- 1 ftp ftp 578960 Sep 01 2015 prate.04.NCAR_CCSM4.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 513718 May 19 2014 prate.05.CFSv2.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 562672 May 19 2014 prate.05.CMC1.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 546384 May 19 2014 prate.05.CMC2.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 597516 May 19 2014 prate.05.GFDL.clim.1x1.grb\n",
"-rw-r--r-- 1 ftp ftp 807300 Sep 01 2015 prate.05.GFDL_FLOR.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 619688 May 19 2014 prate.05.NASA.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 521952 May 19 2014 prate.05.NCAR.clim.1x1.grb\n",
"-rw-r--r-- 1 ftp ftp 587104 Sep 01 2015 prate.05.NCAR_CCSM4.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 578960 May 19 2014 prate.06.CFSv2.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 546384 May 19 2014 prate.06.CMC1.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 554528 May 19 2014 prate.06.CMC2.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 581408 May 19 2014 prate.06.GFDL.clim.1x1.grb\n",
"-rw-r--r-- 1 ftp ftp 807300 Sep 01 2015 prate.06.GFDL_FLOR.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 619688 May 19 2014 prate.06.NASA.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 521952 May 19 2014 prate.06.NCAR.clim.1x1.grb\n",
"-rw-r--r-- 1 ftp ftp 587104 Sep 01 2015 prate.06.NCAR_CCSM4.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 505572 May 19 2014 prate.07.CFSv2.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 546384 May 19 2014 prate.07.CMC1.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 562672 May 19 2014 prate.07.CMC2.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 581408 May 19 2014 prate.07.GFDL.clim.1x1.grb\n",
"-rw-r--r-- 1 ftp ftp 807300 Sep 01 2015 prate.07.GFDL_FLOR.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 611542 May 19 2014 prate.07.NASA.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 521952 May 19 2014 prate.07.NCAR.clim.1x1.grb\n",
"-rw-r--r-- 1 ftp ftp 587104 Sep 01 2015 prate.07.NCAR_CCSM4.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 570816 May 19 2014 prate.08.CFSv2.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 546384 May 19 2014 prate.08.CMC1.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 587104 May 19 2014 prate.08.CMC2.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 581408 May 19 2014 prate.08.GFDL.clim.1x1.grb\n",
"-rw-r--r-- 1 ftp ftp 807300 Sep 01 2015 prate.08.GFDL_FLOR.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 603396 May 19 2014 prate.08.NASA.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 521952 May 19 2014 prate.08.NCAR.clim.1x1.grb\n",
"-rw-r--r-- 1 ftp ftp 587104 Sep 01 2015 prate.08.NCAR_CCSM4.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 570816 May 19 2014 prate.09.CFSv2.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 538240 May 19 2014 prate.09.CMC1.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 587104 May 19 2014 prate.09.CMC2.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 581408 May 19 2014 prate.09.GFDL.clim.1x1.grb\n",
"-rw-r--r-- 1 ftp ftp 807300 Sep 01 2015 prate.09.GFDL_FLOR.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 587104 May 19 2014 prate.09.NASA.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 521952 May 19 2014 prate.09.NCAR.clim.1x1.grb\n",
"-rw-r--r-- 1 ftp ftp 570816 Sep 01 2015 prate.09.NCAR_CCSM4.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 570816 May 19 2014 prate.10.CFSv2.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 530096 May 19 2014 prate.10.CMC1.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 587104 May 19 2014 prate.10.CMC2.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 581408 May 19 2014 prate.10.GFDL.clim.1x1.grb\n",
"-rw-r--r-- 1 ftp ftp 807300 Sep 01 2015 prate.10.GFDL_FLOR.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 587104 May 19 2014 prate.10.NASA.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 521952 May 19 2014 prate.10.NCAR.clim.1x1.grb\n",
"-rw-r--r-- 1 ftp ftp 570816 Sep 01 2015 prate.10.NCAR_CCSM4.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 578960 May 19 2014 prate.11.CFSv2.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 530096 May 19 2014 prate.11.CMC1.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 578960 May 19 2014 prate.11.CMC2.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 589462 May 19 2014 prate.11.GFDL.clim.1x1.grb\n",
"-rw-r--r-- 1 ftp ftp 807300 Sep 01 2015 prate.11.GFDL_FLOR.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 595250 May 19 2014 prate.11.NASA.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 521952 May 19 2014 prate.11.NCAR.clim.1x1.grb\n",
"-rw-r--r-- 1 ftp ftp 570816 Sep 01 2015 prate.11.NCAR_CCSM4.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 587104 May 19 2014 prate.12.CFSv2.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 521952 May 19 2014 prate.12.CMC1.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 570816 May 19 2014 prate.12.CMC2.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 597516 May 19 2014 prate.12.GFDL.clim.1x1.grb\n",
"-rw-r--r-- 1 ftp ftp 807300 Sep 01 2015 prate.12.GFDL_FLOR.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 603396 May 19 2014 prate.12.NASA.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 521952 May 19 2014 prate.12.NCAR.clim.1x1.grb\n",
"-rw-r--r-- 1 ftp ftp 570816 Sep 01 2015 prate.12.NCAR_CCSM4.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 1124848 Dec 14 2015 tmp2m.01.CMC1.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 1124848 Dec 14 2015 tmp2m.01.CMC2.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 1193948 Dec 14 2015 tmp2m.01.GFDL.clim.1x1.grb\n",
"-rw-r--r-- 1 ftp ftp 1193948 Sep 01 2015 tmp2m.01.GFDL_FLOR.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 904766 Dec 14 2015 tmp2m.01.NASA.clim.1x1.grb\n",
"-rw-r--r-- 1 ftp ftp 896620 Sep 01 2015 tmp2m.01.NCAR_CCSM4.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 904766 Dec 14 2015 tmp2m.02.CMC1.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 904766 Dec 14 2015 tmp2m.02.CMC2.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 959992 Dec 14 2015 tmp2m.02.GFDL.clim.1x1.grb\n",
"-rw-r--r-- 1 ftp ftp 1193948 Sep 01 2015 tmp2m.02.GFDL_FLOR.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 904766 Dec 14 2015 tmp2m.02.NASA.clim.1x1.grb\n",
"-rw-r--r-- 1 ftp ftp 904766 Sep 01 2015 tmp2m.02.NCAR_CCSM4.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 912912 Dec 14 2015 tmp2m.03.CMC1.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 912912 Dec 14 2015 tmp2m.03.CMC2.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 968048 Dec 14 2015 tmp2m.03.GFDL.clim.1x1.grb\n",
"-rw-r--r-- 1 ftp ftp 1193948 Sep 01 2015 tmp2m.03.GFDL_FLOR.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 912912 Dec 14 2015 tmp2m.03.NASA.clim.1x1.grb\n",
"-rw-r--r-- 1 ftp ftp 912912 Sep 01 2015 tmp2m.03.NCAR_CCSM4.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 904766 Dec 14 2015 tmp2m.04.CMC1.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 912912 Dec 14 2015 tmp2m.04.CMC2.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 959992 Dec 14 2015 tmp2m.04.GFDL.clim.1x1.grb\n",
"-rw-r--r-- 1 ftp ftp 1185892 Sep 01 2015 tmp2m.04.GFDL_FLOR.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 904766 Dec 14 2015 tmp2m.04.NASA.clim.1x1.grb\n",
"-rw-r--r-- 1 ftp ftp 904766 Sep 01 2015 tmp2m.04.NCAR_CCSM4.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 896620 Dec 14 2015 tmp2m.05.CMC1.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 904766 Dec 14 2015 tmp2m.05.CMC2.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 951936 Dec 14 2015 tmp2m.05.GFDL.clim.1x1.grb\n",
"-rw-r--r-- 1 ftp ftp 1177836 Sep 01 2015 tmp2m.05.GFDL_FLOR.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 896620 Dec 14 2015 tmp2m.05.NASA.clim.1x1.grb\n",
"-rw-r--r-- 1 ftp ftp 896620 Sep 01 2015 tmp2m.05.NCAR_CCSM4.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 888474 Dec 14 2015 tmp2m.06.CMC1.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 896620 Dec 14 2015 tmp2m.06.CMC2.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 943880 Dec 14 2015 tmp2m.06.GFDL.clim.1x1.grb\n",
"-rw-r--r-- 1 ftp ftp 1177836 Sep 01 2015 tmp2m.06.GFDL_FLOR.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 888474 Dec 14 2015 tmp2m.06.NASA.clim.1x1.grb\n",
"-rw-r--r-- 1 ftp ftp 888474 Sep 01 2015 tmp2m.06.NCAR_CCSM4.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 880328 Dec 14 2015 tmp2m.07.CMC1.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 888474 Dec 14 2015 tmp2m.07.CMC2.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 935824 Dec 14 2015 tmp2m.07.GFDL.clim.1x1.grb\n",
"-rw-r--r-- 1 ftp ftp 1177836 Sep 01 2015 tmp2m.07.GFDL_FLOR.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 880328 Dec 14 2015 tmp2m.07.NASA.clim.1x1.grb\n",
"-rw-r--r-- 1 ftp ftp 880328 Sep 01 2015 tmp2m.07.NCAR_CCSM4.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 880328 Dec 14 2015 tmp2m.08.CMC1.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 880328 Dec 14 2015 tmp2m.08.CMC2.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 1177836 Dec 14 2015 tmp2m.08.GFDL.clim.1x1.grb\n",
"-rw-r--r-- 1 ftp ftp 1177836 Sep 01 2015 tmp2m.08.GFDL_FLOR.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 994442 Dec 14 2015 tmp2m.08.NASA.clim.1x1.grb\n",
"-rw-r--r-- 1 ftp ftp 880328 Sep 01 2015 tmp2m.08.NCAR_CCSM4.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 880328 Dec 14 2015 tmp2m.09.CMC1.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 880328 Dec 14 2015 tmp2m.09.CMC2.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 1177836 Dec 14 2015 tmp2m.09.GFDL.clim.1x1.grb\n",
"-rw-r--r-- 1 ftp ftp 1177836 Sep 01 2015 tmp2m.09.GFDL_FLOR.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 1002588 Dec 14 2015 tmp2m.09.NASA.clim.1x1.grb\n",
"-rw-r--r-- 1 ftp ftp 880328 Sep 01 2015 tmp2m.09.NCAR_CCSM4.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 1100410 Dec 14 2015 tmp2m.10.CFSv2.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 880328 Dec 14 2015 tmp2m.10.CMC1.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 880328 Dec 14 2015 tmp2m.10.CMC2.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 1177836 Dec 14 2015 tmp2m.10.GFDL.clim.1x1.grb\n",
"-rw-r--r-- 1 ftp ftp 1177836 Sep 01 2015 tmp2m.10.GFDL_FLOR.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 896620 Dec 14 2015 tmp2m.10.NASA.clim.1x1.grb\n",
"-rw-r--r-- 1 ftp ftp 880328 Sep 01 2015 tmp2m.10.NCAR_CCSM4.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 880328 Dec 14 2015 tmp2m.11.CMC1.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 880328 Dec 14 2015 tmp2m.11.CMC2.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 1177836 Dec 14 2015 tmp2m.11.GFDL.clim.1x1.grb\n",
"-rw-r--r-- 1 ftp ftp 1177836 Sep 01 2015 tmp2m.11.GFDL_FLOR.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 1010734 Dec 14 2015 tmp2m.11.NASA.clim.1x1.grb\n",
"-rw-r--r-- 1 ftp ftp 880328 Sep 01 2015 tmp2m.11.NCAR_CCSM4.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 1108556 Dec 14 2015 tmp2m.12.CFSv2.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 1116702 Dec 14 2015 tmp2m.12.CMC1.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 1116702 Dec 14 2015 tmp2m.12.CMC2.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 1185892 Dec 14 2015 tmp2m.12.GFDL.clim.1x1.grb\n",
"-rw-r--r-- 1 ftp ftp 1185892 Sep 01 2015 tmp2m.12.GFDL_FLOR.clim.1x1.grb\n",
"-rwxr-xr-x 1 ftp ftp 1010734 Dec 14 2015 tmp2m.12.NASA.clim.1x1.grb\n",
"-rw-r--r-- 1 ftp ftp 888474 Sep 01 2015 tmp2m.12.NCAR_CCSM4.clim.1x1.grb\n",
"-rwxrwxr-x 1 ftp ftp 896620 Aug 01 2013 tmpsfc.01.CFSv2.clim.1x1.grb\n",
"-rw-r--r-- 1 ftp ftp 657660 Sep 01 2015 tmpsfc.01.GFDL_FLOR.clim.1x1.grb\n",
"-rw-r--r-- 1 ftp ftp 580464 Sep 01 2015 tmpsfc.01.NCAR_CCSM4.clim.1x1.grb\n",
"-rwxrwxr-x 1 ftp ftp 912912 Aug 01 2013 tmpsfc.02.CFSv2.clim.1x1.grb\n",
"-rw-r--r-- 1 ftp ftp 657660 Sep 01 2015 tmpsfc.02.GFDL_FLOR.clim.1x1.grb\n",
"-rw-r--r-- 1 ftp ftp 580464 Sep 01 2015 tmpsfc.02.NCAR_CCSM4.clim.1x1.grb\n",
"-rwxrwxr-x 1 ftp ftp 912912 Aug 01 2013 tmpsfc.03.CFSv2.clim.1x1.grb\n",
"-rw-r--r-- 1 ftp ftp 657660 Sep 01 2015 tmpsfc.03.GFDL_FLOR.clim.1x1.grb\n",
"-rw-r--r-- 1 ftp ftp 580464 Sep 01 2015 tmpsfc.03.NCAR_CCSM4.clim.1x1.grb\n",
"-rwxrwxr-x 1 ftp ftp 790652 Aug 01 2013 tmpsfc.04.CFSv2.clim.1x1.grb\n",
"-rw-r--r-- 1 ftp ftp 657660 Sep 01 2015 tmpsfc.04.GFDL_FLOR.clim.1x1.grb\n",
"-rw-r--r-- 1 ftp ftp 580464 Sep 01 2015 tmpsfc.04.NCAR_CCSM4.clim.1x1.grb\n",
"-rwxrwxr-x 1 ftp ftp 782506 Aug 01 2013 tmpsfc.05.CFSv2.clim.1x1.grb\n",
"-rw-r--r-- 1 ftp ftp 657660 Sep 01 2015 tmpsfc.05.GFDL_FLOR.clim.1x1.grb\n",
"-rw-r--r-- 1 ftp ftp 580464 Sep 01 2015 tmpsfc.05.NCAR_CCSM4.clim.1x1.grb\n",
"-rwxrwxr-x 1 ftp ftp 888474 Aug 01 2013 tmpsfc.06.CFSv2.clim.1x1.grb\n",
"-rw-r--r-- 1 ftp ftp 657660 Sep 01 2015 tmpsfc.06.GFDL_FLOR.clim.1x1.grb\n",
"-rw-r--r-- 1 ftp ftp 580464 Sep 01 2015 tmpsfc.06.NCAR_CCSM4.clim.1x1.grb\n",
"-rwxrwxr-x 1 ftp ftp 766214 Aug 01 2013 tmpsfc.07.CFSv2.clim.1x1.grb\n",
"-rw-r--r-- 1 ftp ftp 657660 Sep 01 2015 tmpsfc.07.GFDL_FLOR.clim.1x1.grb\n",
"-rw-r--r-- 1 ftp ftp 580464 Sep 01 2015 tmpsfc.07.NCAR_CCSM4.clim.1x1.grb\n",
"-rwxrwxr-x 1 ftp ftp 766214 Aug 22 2014 tmpsfc.08.CFSv2.clim.1x1.grb\n",
"-rw-r--r-- 1 ftp ftp 657660 Sep 01 2015 tmpsfc.08.GFDL_FLOR.clim.1x1.grb\n",
"-rw-r--r-- 1 ftp ftp 580464 Sep 01 2015 tmpsfc.08.NCAR_CCSM4.clim.1x1.grb\n",
"-rwxrwxr-x 1 ftp ftp 766214 Sep 09 2014 tmpsfc.09.CFSv2.clim.1x1.grb\n",
"-rw-r--r-- 1 ftp ftp 657660 Sep 01 2015 tmpsfc.09.GFDL_FLOR.clim.1x1.grb\n",
"-rw-r--r-- 1 ftp ftp 580464 Sep 01 2015 tmpsfc.09.NCAR_CCSM4.clim.1x1.grb\n",
"-rwxrwxr-x 1 ftp ftp 880328 Aug 01 2013 tmpsfc.10.CFSv2.clim.1x1.grb\n",
"-rw-r--r-- 1 ftp ftp 657660 Sep 01 2015 tmpsfc.10.GFDL_FLOR.clim.1x1.grb\n",
"-rw-r--r-- 1 ftp ftp 580464 Sep 01 2015 tmpsfc.10.NCAR_CCSM4.clim.1x1.grb\n",
"-rwxrwxr-x 1 ftp ftp 880328 Aug 01 2013 tmpsfc.11.CFSv2.clim.1x1.grb\n",
"-rw-r--r-- 1 ftp ftp 657660 Sep 01 2015 tmpsfc.11.GFDL_FLOR.clim.1x1.grb\n",
"-rw-r--r-- 1 ftp ftp 580464 Sep 01 2015 tmpsfc.11.NCAR_CCSM4.clim.1x1.grb\n",
"-rwxrwxr-x 1 ftp ftp 888474 Aug 01 2013 tmpsfc.12.CFSv2.clim.1x1.grb\n",
"-rw-r--r-- 1 ftp ftp 657660 Sep 01 2015 tmpsfc.12.GFDL_FLOR.clim.1x1.grb\n",
"-rw-r--r-- 1 ftp ftp 580464 Sep 01 2015 tmpsfc.12.NCAR_CCSM4.clim.1x1.grb\n"
]
}
],
"source": [
"ftp.cwd('/NMME/clim/')\n",
"ftp.dir()"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"['prate.01.CFSv2.clim.1x1.grb', 'prate.01.CMC1.clim.1x1.grb', 'prate.01.CMC2.clim.1x1.grb', 'prate.01.GFDL.clim.1x1.grb', 'prate.01.GFDL_FLOR.clim.1x1.grb', 'prate.01.NASA.clim.1x1.grb', 'prate.01.NCAR.clim.1x1.grb', 'prate.01.NCAR_CCSM4.clim.1x1.grb', 'prate.02.CFSv2.clim.1x1.grb', 'prate.02.CMC1.clim.1x1.grb', 'prate.02.CMC2.clim.1x1.grb', 'prate.02.GFDL.clim.1x1.grb', 'prate.02.GFDL_FLOR.clim.1x1.grb', 'prate.02.NASA.clim.1x1.grb', 'prate.02.NCAR.clim.1x1.grb', 'prate.02.NCAR_CCSM4.clim.1x1.grb', 'prate.03.CFSv2.clim.1x1.grb', 'prate.03.CMC1.clim.1x1.grb', 'prate.03.CMC2.clim.1x1.grb', 'prate.03.GFDL.clim.1x1.grb', 'prate.03.GFDL_FLOR.clim.1x1.grb', 'prate.03.GFDL_FLORa06.clim.1x1.grb', 'prate.03.GFDL_FLORb01.clim.1x1.grb', 'prate.03.NASA.clim.1x1.grb', 'prate.03.NCAR.clim.1x1.grb', 'prate.03.NCAR_CCSM4.clim.1x1.grb', 'prate.04.CFSv2.clim.1x1.grb', 'prate.04.CMC1.clim.1x1.grb', 'prate.04.CMC2.clim.1x1.grb', 'prate.04.GFDL.clim.1x1.grb', 'prate.04.GFDL_FLOR.clim.1x1.grb', 'prate.04.GFDL_FLORa06.clim.1x1.grb', 'prate.04.GFDL_FLORb01.clim.1x1.grb', 'prate.04.NASA.clim.1x1.grb', 'prate.04.NCAR.clim.1x1.grb', 'prate.04.NCAR_CCSM4.clim.1x1.grb', 'prate.05.CFSv2.clim.1x1.grb', 'prate.05.CMC1.clim.1x1.grb', 'prate.05.CMC2.clim.1x1.grb', 'prate.05.GFDL.clim.1x1.grb', 'prate.05.GFDL_FLOR.clim.1x1.grb', 'prate.05.NASA.clim.1x1.grb', 'prate.05.NCAR.clim.1x1.grb', 'prate.05.NCAR_CCSM4.clim.1x1.grb', 'prate.06.CFSv2.clim.1x1.grb', 'prate.06.CMC1.clim.1x1.grb', 'prate.06.CMC2.clim.1x1.grb', 'prate.06.GFDL.clim.1x1.grb', 'prate.06.GFDL_FLOR.clim.1x1.grb', 'prate.06.NASA.clim.1x1.grb', 'prate.06.NCAR.clim.1x1.grb', 'prate.06.NCAR_CCSM4.clim.1x1.grb', 'prate.07.CFSv2.clim.1x1.grb', 'prate.07.CMC1.clim.1x1.grb', 'prate.07.CMC2.clim.1x1.grb', 'prate.07.GFDL.clim.1x1.grb', 'prate.07.GFDL_FLOR.clim.1x1.grb', 'prate.07.NASA.clim.1x1.grb', 'prate.07.NCAR.clim.1x1.grb', 'prate.07.NCAR_CCSM4.clim.1x1.grb', 'prate.08.CFSv2.clim.1x1.grb', 'prate.08.CMC1.clim.1x1.grb', 'prate.08.CMC2.clim.1x1.grb', 'prate.08.GFDL.clim.1x1.grb', 'prate.08.GFDL_FLOR.clim.1x1.grb', 'prate.08.NASA.clim.1x1.grb', 'prate.08.NCAR.clim.1x1.grb', 'prate.08.NCAR_CCSM4.clim.1x1.grb', 'prate.09.CFSv2.clim.1x1.grb', 'prate.09.CMC1.clim.1x1.grb', 'prate.09.CMC2.clim.1x1.grb', 'prate.09.GFDL.clim.1x1.grb', 'prate.09.GFDL_FLOR.clim.1x1.grb', 'prate.09.NASA.clim.1x1.grb', 'prate.09.NCAR.clim.1x1.grb', 'prate.09.NCAR_CCSM4.clim.1x1.grb', 'prate.10.CFSv2.clim.1x1.grb', 'prate.10.CMC1.clim.1x1.grb', 'prate.10.CMC2.clim.1x1.grb', 'prate.10.GFDL.clim.1x1.grb', 'prate.10.GFDL_FLOR.clim.1x1.grb', 'prate.10.NASA.clim.1x1.grb', 'prate.10.NCAR.clim.1x1.grb', 'prate.10.NCAR_CCSM4.clim.1x1.grb', 'prate.11.CFSv2.clim.1x1.grb', 'prate.11.CMC1.clim.1x1.grb', 'prate.11.CMC2.clim.1x1.grb', 'prate.11.GFDL.clim.1x1.grb', 'prate.11.GFDL_FLOR.clim.1x1.grb', 'prate.11.NASA.clim.1x1.grb', 'prate.11.NCAR.clim.1x1.grb', 'prate.11.NCAR_CCSM4.clim.1x1.grb', 'prate.12.CFSv2.clim.1x1.grb', 'prate.12.CMC1.clim.1x1.grb', 'prate.12.CMC2.clim.1x1.grb', 'prate.12.GFDL.clim.1x1.grb', 'prate.12.GFDL_FLOR.clim.1x1.grb', 'prate.12.NASA.clim.1x1.grb', 'prate.12.NCAR.clim.1x1.grb', 'prate.12.NCAR_CCSM4.clim.1x1.grb', 'tmp2m.01.CMC1.clim.1x1.grb', 'tmp2m.01.CMC2.clim.1x1.grb', 'tmp2m.01.GFDL.clim.1x1.grb', 'tmp2m.01.GFDL_FLOR.clim.1x1.grb', 'tmp2m.01.NASA.clim.1x1.grb', 'tmp2m.01.NCAR_CCSM4.clim.1x1.grb', 'tmp2m.02.CMC1.clim.1x1.grb', 'tmp2m.02.CMC2.clim.1x1.grb', 'tmp2m.02.GFDL.clim.1x1.grb', 'tmp2m.02.GFDL_FLOR.clim.1x1.grb', 'tmp2m.02.NASA.clim.1x1.grb', 'tmp2m.02.NCAR_CCSM4.clim.1x1.grb', 'tmp2m.03.CMC1.clim.1x1.grb', 'tmp2m.03.CMC2.clim.1x1.grb', 'tmp2m.03.GFDL.clim.1x1.grb', 'tmp2m.03.GFDL_FLOR.clim.1x1.grb', 'tmp2m.03.NASA.clim.1x1.grb', 'tmp2m.03.NCAR_CCSM4.clim.1x1.grb', 'tmp2m.04.CMC1.clim.1x1.grb', 'tmp2m.04.CMC2.clim.1x1.grb', 'tmp2m.04.GFDL.clim.1x1.grb', 'tmp2m.04.GFDL_FLOR.clim.1x1.grb', 'tmp2m.04.NASA.clim.1x1.grb', 'tmp2m.04.NCAR_CCSM4.clim.1x1.grb', 'tmp2m.05.CMC1.clim.1x1.grb', 'tmp2m.05.CMC2.clim.1x1.grb', 'tmp2m.05.GFDL.clim.1x1.grb', 'tmp2m.05.GFDL_FLOR.clim.1x1.grb', 'tmp2m.05.NASA.clim.1x1.grb', 'tmp2m.05.NCAR_CCSM4.clim.1x1.grb', 'tmp2m.06.CMC1.clim.1x1.grb', 'tmp2m.06.CMC2.clim.1x1.grb', 'tmp2m.06.GFDL.clim.1x1.grb', 'tmp2m.06.GFDL_FLOR.clim.1x1.grb', 'tmp2m.06.NASA.clim.1x1.grb', 'tmp2m.06.NCAR_CCSM4.clim.1x1.grb', 'tmp2m.07.CMC1.clim.1x1.grb', 'tmp2m.07.CMC2.clim.1x1.grb', 'tmp2m.07.GFDL.clim.1x1.grb', 'tmp2m.07.GFDL_FLOR.clim.1x1.grb', 'tmp2m.07.NASA.clim.1x1.grb', 'tmp2m.07.NCAR_CCSM4.clim.1x1.grb', 'tmp2m.08.CMC1.clim.1x1.grb', 'tmp2m.08.CMC2.clim.1x1.grb', 'tmp2m.08.GFDL.clim.1x1.grb', 'tmp2m.08.GFDL_FLOR.clim.1x1.grb', 'tmp2m.08.NASA.clim.1x1.grb', 'tmp2m.08.NCAR_CCSM4.clim.1x1.grb', 'tmp2m.09.CMC1.clim.1x1.grb', 'tmp2m.09.CMC2.clim.1x1.grb', 'tmp2m.09.GFDL.clim.1x1.grb', 'tmp2m.09.GFDL_FLOR.clim.1x1.grb', 'tmp2m.09.NASA.clim.1x1.grb', 'tmp2m.09.NCAR_CCSM4.clim.1x1.grb', 'tmp2m.10.CFSv2.clim.1x1.grb', 'tmp2m.10.CMC1.clim.1x1.grb', 'tmp2m.10.CMC2.clim.1x1.grb', 'tmp2m.10.GFDL.clim.1x1.grb', 'tmp2m.10.GFDL_FLOR.clim.1x1.grb', 'tmp2m.10.NASA.clim.1x1.grb', 'tmp2m.10.NCAR_CCSM4.clim.1x1.grb', 'tmp2m.11.CMC1.clim.1x1.grb', 'tmp2m.11.CMC2.clim.1x1.grb', 'tmp2m.11.GFDL.clim.1x1.grb', 'tmp2m.11.GFDL_FLOR.clim.1x1.grb', 'tmp2m.11.NASA.clim.1x1.grb', 'tmp2m.11.NCAR_CCSM4.clim.1x1.grb', 'tmp2m.12.CFSv2.clim.1x1.grb', 'tmp2m.12.CMC1.clim.1x1.grb', 'tmp2m.12.CMC2.clim.1x1.grb', 'tmp2m.12.GFDL.clim.1x1.grb', 'tmp2m.12.GFDL_FLOR.clim.1x1.grb', 'tmp2m.12.NASA.clim.1x1.grb', 'tmp2m.12.NCAR_CCSM4.clim.1x1.grb', 'tmpsfc.01.CFSv2.clim.1x1.grb', 'tmpsfc.01.GFDL_FLOR.clim.1x1.grb', 'tmpsfc.01.NCAR_CCSM4.clim.1x1.grb', 'tmpsfc.02.CFSv2.clim.1x1.grb', 'tmpsfc.02.GFDL_FLOR.clim.1x1.grb', 'tmpsfc.02.NCAR_CCSM4.clim.1x1.grb', 'tmpsfc.03.CFSv2.clim.1x1.grb', 'tmpsfc.03.GFDL_FLOR.clim.1x1.grb', 'tmpsfc.03.NCAR_CCSM4.clim.1x1.grb', 'tmpsfc.04.CFSv2.clim.1x1.grb', 'tmpsfc.04.GFDL_FLOR.clim.1x1.grb', 'tmpsfc.04.NCAR_CCSM4.clim.1x1.grb', 'tmpsfc.05.CFSv2.clim.1x1.grb', 'tmpsfc.05.GFDL_FLOR.clim.1x1.grb', 'tmpsfc.05.NCAR_CCSM4.clim.1x1.grb', 'tmpsfc.06.CFSv2.clim.1x1.grb', 'tmpsfc.06.GFDL_FLOR.clim.1x1.grb', 'tmpsfc.06.NCAR_CCSM4.clim.1x1.grb', 'tmpsfc.07.CFSv2.clim.1x1.grb', 'tmpsfc.07.GFDL_FLOR.clim.1x1.grb', 'tmpsfc.07.NCAR_CCSM4.clim.1x1.grb', 'tmpsfc.08.CFSv2.clim.1x1.grb', 'tmpsfc.08.GFDL_FLOR.clim.1x1.grb', 'tmpsfc.08.NCAR_CCSM4.clim.1x1.grb', 'tmpsfc.09.CFSv2.clim.1x1.grb', 'tmpsfc.09.GFDL_FLOR.clim.1x1.grb', 'tmpsfc.09.NCAR_CCSM4.clim.1x1.grb', 'tmpsfc.10.CFSv2.clim.1x1.grb', 'tmpsfc.10.GFDL_FLOR.clim.1x1.grb', 'tmpsfc.10.NCAR_CCSM4.clim.1x1.grb', 'tmpsfc.11.CFSv2.clim.1x1.grb', 'tmpsfc.11.GFDL_FLOR.clim.1x1.grb', 'tmpsfc.11.NCAR_CCSM4.clim.1x1.grb', 'tmpsfc.12.CFSv2.clim.1x1.grb', 'tmpsfc.12.GFDL_FLOR.clim.1x1.grb', 'tmpsfc.12.NCAR_CCSM4.clim.1x1.grb']\n"
]
}
],
"source": [
"filenames = ftp.nlst() # get filenames within the directory\n",
"print(filenames)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Descargando un archivo via FTP\n",
"\n",
"Supongamos que queremos descargar un solo archivo del servidor. Para esto necesitamos abrir un archivo local en el cual vamos a guardar la descarga. Recuerden que es necesario cerrar el archivo en donde realizamos la descarga una vez finalizada esta."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"filename = 'prate.01.CFSv2.clim.1x1.grb'\n",
"\n",
"# Path al archivo local donde lo vamos a guardar\n",
"local_filename = os.path.join('data', filename)\n",
"file = open(local_filename, 'wb')\n",
"ftp.retrbinary('RETR '+ filename, file.write)\n",
"\n",
"file.close()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Descarga de multiples archivos\n",
"\n",
"En el caso en que querramos descargar todos los archivos que hay en algún directorio del servidor vamos a hacer:"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# Lista con el nombre de todos los elementos dentro del directoryio\n",
"filenames = ftp.nlst()\n",
"\n",
"for filename in filenames:\n",
" local_filename = os.path.join('data', filename)\n",
" file = open(local_filename, 'wb')\n",
" ftp.retrbinary('RETR '+ filename, file.write)\n",
"\n",
" file.close()\n",
"\n",
"ftp.quit() # This is the “polite” way to close a connection"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Lo más probable es que, dentro de este directorio, existan varios otros archivos que no estemos interesados en descargarlos. Supongamos que solo nos interesa los archivos que tengan la terminación *.grd*"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"for filename in filenames:\n",
" if filename.endswith('.grd'):\n",
" local_filename = os.path.join('data', filename)\n",
" file = open(local_filename, 'wb')\n",
" ftp.retrbinary('RETR '+ filename, file.write)\n",
"\n",
" file.close()"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
""
],
"text/plain": [
""
]
},
"execution_count": 1,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#Este css es trabajo de @LorenaABarba y su grupo\n",
"from IPython.core.display import HTML\n",
"css_file = '../css/personal.css'\n",
"HTML(open(css_file, \"r\").read())"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.5.2"
}
},
"nbformat": 4,
"nbformat_minor": 0
}