Accediendo a servidores con FTP

La biblioteca estandar de python nos permite acceder de una manera simple a servidores FTP haciendo uso del modulo ftplib

In [2]:
from ftplib import FTP
import os

url = 'ftp.cpc.ncep.noaa.gov'
ftp = FTP(url)     # connect to host, default port
ftp.login()                     # user anonymous, passwd [email protected]
Out[2]:
'230 Login successful.'

Notar que aunte que no exista necesidad de hacer un login en el servidor, de todas maneras hay que utilizar el método .login()

Elementos del directorio

In [3]:
ftp.cwd('/NMME/clim/')
ftp.dir()
-rwxr-xr-x    1 ftp      ftp        587104 May 19  2014 prate.01.CFSv2.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        530096 May 19  2014 prate.01.CMC1.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        570816 May 19  2014 prate.01.CMC2.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        597516 May 19  2014 prate.01.GFDL.clim.1x1.grb
-rw-r--r--    1 ftp      ftp        807300 Sep 01  2015 prate.01.GFDL_FLOR.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        611542 May 19  2014 prate.01.NASA.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        521952 May 19  2014 prate.01.NCAR.clim.1x1.grb
-rw-r--r--    1 ftp      ftp        578960 Sep 01  2015 prate.01.NCAR_CCSM4.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        587104 May 19  2014 prate.02.CFSv2.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        538240 May 19  2014 prate.02.CMC1.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        554528 May 19  2014 prate.02.CMC2.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        597516 May 19  2014 prate.02.GFDL.clim.1x1.grb
-rw-r--r--    1 ftp      ftp        807300 Sep 01  2015 prate.02.GFDL_FLOR.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        619688 May 19  2014 prate.02.NASA.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        521952 May 19  2014 prate.02.NCAR.clim.1x1.grb
-rw-r--r--    1 ftp      ftp        570816 Sep 01  2015 prate.02.NCAR_CCSM4.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        587104 May 19  2014 prate.03.CFSv2.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        538240 May 19  2014 prate.03.CMC1.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        554528 May 19  2014 prate.03.CMC2.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        597516 May 19  2014 prate.03.GFDL.clim.1x1.grb
-rw-r--r--    1 ftp      ftp        807300 Sep 01  2015 prate.03.GFDL_FLOR.clim.1x1.grb
-rw-r--r--    1 ftp      ftp        807300 May 19  2014 prate.03.GFDL_FLORa06.clim.1x1.grb
-rw-r--r--    1 ftp      ftp        807300 May 19  2014 prate.03.GFDL_FLORb01.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        619688 May 19  2014 prate.03.NASA.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        521952 May 19  2014 prate.03.NCAR.clim.1x1.grb
-rw-r--r--    1 ftp      ftp        570816 Sep 01  2015 prate.03.NCAR_CCSM4.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        513718 May 19  2014 prate.04.CFSv2.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        554528 May 19  2014 prate.04.CMC1.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        546384 May 19  2014 prate.04.CMC2.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        597516 May 19  2014 prate.04.GFDL.clim.1x1.grb
-rw-r--r--    1 ftp      ftp        807300 Sep 01  2015 prate.04.GFDL_FLOR.clim.1x1.grb
-rw-r--r--    1 ftp      ftp        807300 May 19  2014 prate.04.GFDL_FLORa06.clim.1x1.grb
-rw-r--r--    1 ftp      ftp        807300 May 19  2014 prate.04.GFDL_FLORb01.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        619688 May 19  2014 prate.04.NASA.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        521952 May 19  2014 prate.04.NCAR.clim.1x1.grb
-rw-r--r--    1 ftp      ftp        578960 Sep 01  2015 prate.04.NCAR_CCSM4.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        513718 May 19  2014 prate.05.CFSv2.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        562672 May 19  2014 prate.05.CMC1.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        546384 May 19  2014 prate.05.CMC2.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        597516 May 19  2014 prate.05.GFDL.clim.1x1.grb
-rw-r--r--    1 ftp      ftp        807300 Sep 01  2015 prate.05.GFDL_FLOR.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        619688 May 19  2014 prate.05.NASA.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        521952 May 19  2014 prate.05.NCAR.clim.1x1.grb
-rw-r--r--    1 ftp      ftp        587104 Sep 01  2015 prate.05.NCAR_CCSM4.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        578960 May 19  2014 prate.06.CFSv2.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        546384 May 19  2014 prate.06.CMC1.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        554528 May 19  2014 prate.06.CMC2.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        581408 May 19  2014 prate.06.GFDL.clim.1x1.grb
-rw-r--r--    1 ftp      ftp        807300 Sep 01  2015 prate.06.GFDL_FLOR.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        619688 May 19  2014 prate.06.NASA.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        521952 May 19  2014 prate.06.NCAR.clim.1x1.grb
-rw-r--r--    1 ftp      ftp        587104 Sep 01  2015 prate.06.NCAR_CCSM4.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        505572 May 19  2014 prate.07.CFSv2.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        546384 May 19  2014 prate.07.CMC1.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        562672 May 19  2014 prate.07.CMC2.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        581408 May 19  2014 prate.07.GFDL.clim.1x1.grb
-rw-r--r--    1 ftp      ftp        807300 Sep 01  2015 prate.07.GFDL_FLOR.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        611542 May 19  2014 prate.07.NASA.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        521952 May 19  2014 prate.07.NCAR.clim.1x1.grb
-rw-r--r--    1 ftp      ftp        587104 Sep 01  2015 prate.07.NCAR_CCSM4.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        570816 May 19  2014 prate.08.CFSv2.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        546384 May 19  2014 prate.08.CMC1.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        587104 May 19  2014 prate.08.CMC2.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        581408 May 19  2014 prate.08.GFDL.clim.1x1.grb
-rw-r--r--    1 ftp      ftp        807300 Sep 01  2015 prate.08.GFDL_FLOR.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        603396 May 19  2014 prate.08.NASA.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        521952 May 19  2014 prate.08.NCAR.clim.1x1.grb
-rw-r--r--    1 ftp      ftp        587104 Sep 01  2015 prate.08.NCAR_CCSM4.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        570816 May 19  2014 prate.09.CFSv2.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        538240 May 19  2014 prate.09.CMC1.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        587104 May 19  2014 prate.09.CMC2.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        581408 May 19  2014 prate.09.GFDL.clim.1x1.grb
-rw-r--r--    1 ftp      ftp        807300 Sep 01  2015 prate.09.GFDL_FLOR.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        587104 May 19  2014 prate.09.NASA.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        521952 May 19  2014 prate.09.NCAR.clim.1x1.grb
-rw-r--r--    1 ftp      ftp        570816 Sep 01  2015 prate.09.NCAR_CCSM4.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        570816 May 19  2014 prate.10.CFSv2.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        530096 May 19  2014 prate.10.CMC1.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        587104 May 19  2014 prate.10.CMC2.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        581408 May 19  2014 prate.10.GFDL.clim.1x1.grb
-rw-r--r--    1 ftp      ftp        807300 Sep 01  2015 prate.10.GFDL_FLOR.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        587104 May 19  2014 prate.10.NASA.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        521952 May 19  2014 prate.10.NCAR.clim.1x1.grb
-rw-r--r--    1 ftp      ftp        570816 Sep 01  2015 prate.10.NCAR_CCSM4.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        578960 May 19  2014 prate.11.CFSv2.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        530096 May 19  2014 prate.11.CMC1.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        578960 May 19  2014 prate.11.CMC2.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        589462 May 19  2014 prate.11.GFDL.clim.1x1.grb
-rw-r--r--    1 ftp      ftp        807300 Sep 01  2015 prate.11.GFDL_FLOR.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        595250 May 19  2014 prate.11.NASA.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        521952 May 19  2014 prate.11.NCAR.clim.1x1.grb
-rw-r--r--    1 ftp      ftp        570816 Sep 01  2015 prate.11.NCAR_CCSM4.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        587104 May 19  2014 prate.12.CFSv2.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        521952 May 19  2014 prate.12.CMC1.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        570816 May 19  2014 prate.12.CMC2.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        597516 May 19  2014 prate.12.GFDL.clim.1x1.grb
-rw-r--r--    1 ftp      ftp        807300 Sep 01  2015 prate.12.GFDL_FLOR.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        603396 May 19  2014 prate.12.NASA.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        521952 May 19  2014 prate.12.NCAR.clim.1x1.grb
-rw-r--r--    1 ftp      ftp        570816 Sep 01  2015 prate.12.NCAR_CCSM4.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp       1124848 Dec 14  2015 tmp2m.01.CMC1.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp       1124848 Dec 14  2015 tmp2m.01.CMC2.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp       1193948 Dec 14  2015 tmp2m.01.GFDL.clim.1x1.grb
-rw-r--r--    1 ftp      ftp       1193948 Sep 01  2015 tmp2m.01.GFDL_FLOR.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        904766 Dec 14  2015 tmp2m.01.NASA.clim.1x1.grb
-rw-r--r--    1 ftp      ftp        896620 Sep 01  2015 tmp2m.01.NCAR_CCSM4.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        904766 Dec 14  2015 tmp2m.02.CMC1.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        904766 Dec 14  2015 tmp2m.02.CMC2.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        959992 Dec 14  2015 tmp2m.02.GFDL.clim.1x1.grb
-rw-r--r--    1 ftp      ftp       1193948 Sep 01  2015 tmp2m.02.GFDL_FLOR.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        904766 Dec 14  2015 tmp2m.02.NASA.clim.1x1.grb
-rw-r--r--    1 ftp      ftp        904766 Sep 01  2015 tmp2m.02.NCAR_CCSM4.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        912912 Dec 14  2015 tmp2m.03.CMC1.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        912912 Dec 14  2015 tmp2m.03.CMC2.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        968048 Dec 14  2015 tmp2m.03.GFDL.clim.1x1.grb
-rw-r--r--    1 ftp      ftp       1193948 Sep 01  2015 tmp2m.03.GFDL_FLOR.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        912912 Dec 14  2015 tmp2m.03.NASA.clim.1x1.grb
-rw-r--r--    1 ftp      ftp        912912 Sep 01  2015 tmp2m.03.NCAR_CCSM4.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        904766 Dec 14  2015 tmp2m.04.CMC1.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        912912 Dec 14  2015 tmp2m.04.CMC2.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        959992 Dec 14  2015 tmp2m.04.GFDL.clim.1x1.grb
-rw-r--r--    1 ftp      ftp       1185892 Sep 01  2015 tmp2m.04.GFDL_FLOR.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        904766 Dec 14  2015 tmp2m.04.NASA.clim.1x1.grb
-rw-r--r--    1 ftp      ftp        904766 Sep 01  2015 tmp2m.04.NCAR_CCSM4.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        896620 Dec 14  2015 tmp2m.05.CMC1.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        904766 Dec 14  2015 tmp2m.05.CMC2.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        951936 Dec 14  2015 tmp2m.05.GFDL.clim.1x1.grb
-rw-r--r--    1 ftp      ftp       1177836 Sep 01  2015 tmp2m.05.GFDL_FLOR.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        896620 Dec 14  2015 tmp2m.05.NASA.clim.1x1.grb
-rw-r--r--    1 ftp      ftp        896620 Sep 01  2015 tmp2m.05.NCAR_CCSM4.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        888474 Dec 14  2015 tmp2m.06.CMC1.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        896620 Dec 14  2015 tmp2m.06.CMC2.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        943880 Dec 14  2015 tmp2m.06.GFDL.clim.1x1.grb
-rw-r--r--    1 ftp      ftp       1177836 Sep 01  2015 tmp2m.06.GFDL_FLOR.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        888474 Dec 14  2015 tmp2m.06.NASA.clim.1x1.grb
-rw-r--r--    1 ftp      ftp        888474 Sep 01  2015 tmp2m.06.NCAR_CCSM4.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        880328 Dec 14  2015 tmp2m.07.CMC1.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        888474 Dec 14  2015 tmp2m.07.CMC2.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        935824 Dec 14  2015 tmp2m.07.GFDL.clim.1x1.grb
-rw-r--r--    1 ftp      ftp       1177836 Sep 01  2015 tmp2m.07.GFDL_FLOR.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        880328 Dec 14  2015 tmp2m.07.NASA.clim.1x1.grb
-rw-r--r--    1 ftp      ftp        880328 Sep 01  2015 tmp2m.07.NCAR_CCSM4.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        880328 Dec 14  2015 tmp2m.08.CMC1.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        880328 Dec 14  2015 tmp2m.08.CMC2.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp       1177836 Dec 14  2015 tmp2m.08.GFDL.clim.1x1.grb
-rw-r--r--    1 ftp      ftp       1177836 Sep 01  2015 tmp2m.08.GFDL_FLOR.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        994442 Dec 14  2015 tmp2m.08.NASA.clim.1x1.grb
-rw-r--r--    1 ftp      ftp        880328 Sep 01  2015 tmp2m.08.NCAR_CCSM4.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        880328 Dec 14  2015 tmp2m.09.CMC1.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        880328 Dec 14  2015 tmp2m.09.CMC2.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp       1177836 Dec 14  2015 tmp2m.09.GFDL.clim.1x1.grb
-rw-r--r--    1 ftp      ftp       1177836 Sep 01  2015 tmp2m.09.GFDL_FLOR.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp       1002588 Dec 14  2015 tmp2m.09.NASA.clim.1x1.grb
-rw-r--r--    1 ftp      ftp        880328 Sep 01  2015 tmp2m.09.NCAR_CCSM4.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp       1100410 Dec 14  2015 tmp2m.10.CFSv2.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        880328 Dec 14  2015 tmp2m.10.CMC1.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        880328 Dec 14  2015 tmp2m.10.CMC2.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp       1177836 Dec 14  2015 tmp2m.10.GFDL.clim.1x1.grb
-rw-r--r--    1 ftp      ftp       1177836 Sep 01  2015 tmp2m.10.GFDL_FLOR.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        896620 Dec 14  2015 tmp2m.10.NASA.clim.1x1.grb
-rw-r--r--    1 ftp      ftp        880328 Sep 01  2015 tmp2m.10.NCAR_CCSM4.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        880328 Dec 14  2015 tmp2m.11.CMC1.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp        880328 Dec 14  2015 tmp2m.11.CMC2.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp       1177836 Dec 14  2015 tmp2m.11.GFDL.clim.1x1.grb
-rw-r--r--    1 ftp      ftp       1177836 Sep 01  2015 tmp2m.11.GFDL_FLOR.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp       1010734 Dec 14  2015 tmp2m.11.NASA.clim.1x1.grb
-rw-r--r--    1 ftp      ftp        880328 Sep 01  2015 tmp2m.11.NCAR_CCSM4.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp       1108556 Dec 14  2015 tmp2m.12.CFSv2.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp       1116702 Dec 14  2015 tmp2m.12.CMC1.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp       1116702 Dec 14  2015 tmp2m.12.CMC2.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp       1185892 Dec 14  2015 tmp2m.12.GFDL.clim.1x1.grb
-rw-r--r--    1 ftp      ftp       1185892 Sep 01  2015 tmp2m.12.GFDL_FLOR.clim.1x1.grb
-rwxr-xr-x    1 ftp      ftp       1010734 Dec 14  2015 tmp2m.12.NASA.clim.1x1.grb
-rw-r--r--    1 ftp      ftp        888474 Sep 01  2015 tmp2m.12.NCAR_CCSM4.clim.1x1.grb
-rwxrwxr-x    1 ftp      ftp        896620 Aug 01  2013 tmpsfc.01.CFSv2.clim.1x1.grb
-rw-r--r--    1 ftp      ftp        657660 Sep 01  2015 tmpsfc.01.GFDL_FLOR.clim.1x1.grb
-rw-r--r--    1 ftp      ftp        580464 Sep 01  2015 tmpsfc.01.NCAR_CCSM4.clim.1x1.grb
-rwxrwxr-x    1 ftp      ftp        912912 Aug 01  2013 tmpsfc.02.CFSv2.clim.1x1.grb
-rw-r--r--    1 ftp      ftp        657660 Sep 01  2015 tmpsfc.02.GFDL_FLOR.clim.1x1.grb
-rw-r--r--    1 ftp      ftp        580464 Sep 01  2015 tmpsfc.02.NCAR_CCSM4.clim.1x1.grb
-rwxrwxr-x    1 ftp      ftp        912912 Aug 01  2013 tmpsfc.03.CFSv2.clim.1x1.grb
-rw-r--r--    1 ftp      ftp        657660 Sep 01  2015 tmpsfc.03.GFDL_FLOR.clim.1x1.grb
-rw-r--r--    1 ftp      ftp        580464 Sep 01  2015 tmpsfc.03.NCAR_CCSM4.clim.1x1.grb
-rwxrwxr-x    1 ftp      ftp        790652 Aug 01  2013 tmpsfc.04.CFSv2.clim.1x1.grb
-rw-r--r--    1 ftp      ftp        657660 Sep 01  2015 tmpsfc.04.GFDL_FLOR.clim.1x1.grb
-rw-r--r--    1 ftp      ftp        580464 Sep 01  2015 tmpsfc.04.NCAR_CCSM4.clim.1x1.grb
-rwxrwxr-x    1 ftp      ftp        782506 Aug 01  2013 tmpsfc.05.CFSv2.clim.1x1.grb
-rw-r--r--    1 ftp      ftp        657660 Sep 01  2015 tmpsfc.05.GFDL_FLOR.clim.1x1.grb
-rw-r--r--    1 ftp      ftp        580464 Sep 01  2015 tmpsfc.05.NCAR_CCSM4.clim.1x1.grb
-rwxrwxr-x    1 ftp      ftp        888474 Aug 01  2013 tmpsfc.06.CFSv2.clim.1x1.grb
-rw-r--r--    1 ftp      ftp        657660 Sep 01  2015 tmpsfc.06.GFDL_FLOR.clim.1x1.grb
-rw-r--r--    1 ftp      ftp        580464 Sep 01  2015 tmpsfc.06.NCAR_CCSM4.clim.1x1.grb
-rwxrwxr-x    1 ftp      ftp        766214 Aug 01  2013 tmpsfc.07.CFSv2.clim.1x1.grb
-rw-r--r--    1 ftp      ftp        657660 Sep 01  2015 tmpsfc.07.GFDL_FLOR.clim.1x1.grb
-rw-r--r--    1 ftp      ftp        580464 Sep 01  2015 tmpsfc.07.NCAR_CCSM4.clim.1x1.grb
-rwxrwxr-x    1 ftp      ftp        766214 Aug 22  2014 tmpsfc.08.CFSv2.clim.1x1.grb
-rw-r--r--    1 ftp      ftp        657660 Sep 01  2015 tmpsfc.08.GFDL_FLOR.clim.1x1.grb
-rw-r--r--    1 ftp      ftp        580464 Sep 01  2015 tmpsfc.08.NCAR_CCSM4.clim.1x1.grb
-rwxrwxr-x    1 ftp      ftp        766214 Sep 09  2014 tmpsfc.09.CFSv2.clim.1x1.grb
-rw-r--r--    1 ftp      ftp        657660 Sep 01  2015 tmpsfc.09.GFDL_FLOR.clim.1x1.grb
-rw-r--r--    1 ftp      ftp        580464 Sep 01  2015 tmpsfc.09.NCAR_CCSM4.clim.1x1.grb
-rwxrwxr-x    1 ftp      ftp        880328 Aug 01  2013 tmpsfc.10.CFSv2.clim.1x1.grb
-rw-r--r--    1 ftp      ftp        657660 Sep 01  2015 tmpsfc.10.GFDL_FLOR.clim.1x1.grb
-rw-r--r--    1 ftp      ftp        580464 Sep 01  2015 tmpsfc.10.NCAR_CCSM4.clim.1x1.grb
-rwxrwxr-x    1 ftp      ftp        880328 Aug 01  2013 tmpsfc.11.CFSv2.clim.1x1.grb
-rw-r--r--    1 ftp      ftp        657660 Sep 01  2015 tmpsfc.11.GFDL_FLOR.clim.1x1.grb
-rw-r--r--    1 ftp      ftp        580464 Sep 01  2015 tmpsfc.11.NCAR_CCSM4.clim.1x1.grb
-rwxrwxr-x    1 ftp      ftp        888474 Aug 01  2013 tmpsfc.12.CFSv2.clim.1x1.grb
-rw-r--r--    1 ftp      ftp        657660 Sep 01  2015 tmpsfc.12.GFDL_FLOR.clim.1x1.grb
-rw-r--r--    1 ftp      ftp        580464 Sep 01  2015 tmpsfc.12.NCAR_CCSM4.clim.1x1.grb
In [4]:
filenames = ftp.nlst() # get filenames within the directory
print(filenames)
['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']

Descargando un archivo via FTP

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.

In [ ]:
filename = 'prate.01.CFSv2.clim.1x1.grb'

# Path al archivo local donde lo vamos a guardar
local_filename = os.path.join('data', filename)
file = open(local_filename, 'wb')
ftp.retrbinary('RETR '+ filename, file.write)

file.close()

Descarga de multiples archivos

En el caso en que querramos descargar todos los archivos que hay en algún directorio del servidor vamos a hacer:

In [ ]:
# Lista con el nombre de todos los elementos dentro del directoryio
filenames = ftp.nlst()

for filename in filenames:
    local_filename = os.path.join('data', filename)
    file = open(local_filename, 'wb')
    ftp.retrbinary('RETR '+ filename, file.write)

    file.close()

ftp.quit() # This is the “polite” way to close a connection

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

In [ ]:
for filename in filenames:
    if filename.endswith('.grd'):
        local_filename = os.path.join('data', filename)
        file = open(local_filename, 'wb')
        ftp.retrbinary('RETR '+ filename, file.write)

        file.close()
In [1]:
#Este css es trabajo de @LorenaABarba y su grupo
from IPython.core.display import HTML
css_file = '../css/personal.css'
HTML(open(css_file, "r").read())
Out[1]: