在气象领域,FTP是比较常用的一个数据来源。本文尝试采用python的ftplib包,实现了从指定ftp服务器中批量下载文件的功能。供大家学习参考。

https://docs.python.org/3/library/ftplib.html#module-ftplib 该网址为官方文档。

代码如下:

# -*- coding: utf-8 -*-
"""
Created on Fri Mar 1 11:05:38 2019
@author: BBR
"""
import ftplib
import os
import datetime host = '172.18.16.30'
username = 'ww'
password = ''
localpath=r"\\10.226.110.225\Climate_Share\10.226.110.225\climates\data\file\a"
f = ftplib.FTP(host)
f.login(username, password)
nowstr=datetime.datetime.now()
lastmonth=nowstr-datetime.timedelta(weeks=1)
datestr=lastmonth.strftime('%Y%m')
f.cwd('clim')
pwd_path = f.pwd()
stationids=['A54428','A54525','A54523','A54529','A54619','A54527',\
'A54528','A54517','A54526','A54622','A54645','A54530','A54623']
stationnames=['蓟州','宝坻','武清','宁河','静海','西青',\
'北辰','市区','东丽','津南','大港','汉沽','塘沽']
def ftp_download(filename,stationname):
file_remote = filename
file_local = localpath+'\\'+filename
bufsize = 1024 # 设置缓冲器大小
try:
fp = open(file_local, 'wb')
f.retrbinary('RETR %s' % file_remote, fp.write, bufsize)
except:
fp.close()
os.remove(file_local)
print(stationname+' 文件不存在!')
fp.close()
for id,idname in zip(stationids,stationnames):
filename=id+'-'+datestr+'.TXT'
ftp_download(filename,idname)
f.quit()

ftplib python ftp的更多相关文章

  1. python之模块ftplib(实现ftp上传下载代码)

    # -*- coding: utf-8 -*- #python 27 #xiaodeng #python之模块ftplib(实现ftp上传下载代码) #需求:实现ftp上传下载代码(不含错误处理) f ...

  2. python使用ftplib做ftp操作

    ftplib是 Python的内置的一个标准模块,它提供了极强大的对FTP服务器的操作,通过它我们可以连接并操作FTP服务端,开始练习: 一.导入模块并进行连接 >>> from f ...

  3. Python的网络编程[1] -> FTP 协议[2] -> 使用 ftplib 建立 FTP 客户端

    使用 ftplib 建立 FTP 客户端 用于建立FTP Client,与 pyftplib 建立的 Server 进行通信. 快速导航 1. 模块信息 2. 建立 FTP 客户端 1. 模块信息 1 ...

  4. Python FTP多线程爆破脚本

    初学python, 自己编写了个FTP多线爆破小脚本代码很丑= = #!usr/bin/env python #!coding=utf-8 __author__='zhengjim' from ftp ...

  5. python3+ftplib实现ftp客户端

    一.程序说明 1.1 程序实现关键点 python实现ftp客户端,主要会遇到以下四个问题: 第一个问题是使用什么包实现----我们这里是使用标准库中的ftplib 第二个问题是怎么连接登录ftp服务 ...

  6. python ftp操作脚本&常用函数

    需求:快速进行ftp上传 ,下载,查询文件 原来直接在shell下操作: 需要[连接,输用户名,输密码,单文件操作,存在超时限制] 太过于繁琐,容易操作失败 脚本改进: 一句命令,搞定多文件上传,下载 ...

  7. python ftp 上传

    #!/usr/bin/python # -*-coding:utf- -*- from ftplib import FTP def ftpconnect(host,username,password) ...

  8. python ftp download with progressbar

    i am a new one to learn Python. Try to download by FTP. search basic code from baidu. no one tells h ...

  9. python ftp sftp

    ftp 上传下载文件 12345678910111213141516171819202122232425262728293031323334 from ftplib import FTPimport ...

随机推荐

  1. 四:MySQL系列之Python交互(四)

    该篇主要介绍MySQL数据库的分表.以及与Python的交互的基本操作等. 一.拆分表操作 1.1  准备工作 创建数据库 --> 使用数据库 --> 创建数据表 --- 添加记录 -- ...

  2. Python函数Day2

    一.函数补充 只有一个参数时,变量用argv 二.动态参数 为了拓展,对于传入的实参数量不固定,需要万能参数,即动态参数 *args **kwargs 在函数定义时,在 *args为位置参数,起聚合的 ...

  3. java.lang.NoClassDefFoundError: Could not initialize class xxx

    感慨:啊啊啊啊啊啊啊啊啊啊,这个问题弄了我好久,整整一天!!! 概述:原本是调用公司自己写的jar包的工具类.在其他项目都能调用,一模一样的套用过来就是不行.问了一些同事他们也不知道怎么解决. 然后百 ...

  4. linux网络编程之socket编程(十)

    今天继续socket编程的学习,最近晚上睡觉都没有发热,没有暖气的日子还是种煎熬,快乐的十一也已经走来,幸福有暖气的日子也快啦,好了,回到正题~ ①close终止了数据传送的两个方向. ②shutdo ...

  5. MySQL进阶15--TCL事务控制语言--建立结束事务/设置断点--默认隔离级别--脏读/幻读/不可重复读

    #TCL事物控制语言 : /* Transaction control language : 事物控制语言 事务: 一个或者一组sql语句组成一个执行单元,这个执行单元要么全部执行,要么全部不执行; ...

  6. 【恐怖的数组模拟】Secret Poems - HihoCoder - 1632

    Secret Poems - HihoCoder - 1632 图一 图二 Following the order indicated by arrows, you can get “THISISAV ...

  7. 【开200数组解决二叉搜索树的建立、遍历】PAT-L3-016. 二叉搜索树的结构——不用链表来搞定二叉搜索树

    L3-016. 二叉搜索树的结构 二叉搜索树或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值:若它的右子树不空,则右子树上所有结点的值均大于它 ...

  8. ReLU激活函数

    参考:https://blog.csdn.net/cherrylvlei/article/details/53149381 首先,我们来看一下ReLU激活函数的形式,如下图: 单侧抑制,当模型增加N层 ...

  9. PWA相关代码

    sw.js 文件 let CacheName = 'plus-v1'; var filesToCache = [ ]; self.addEventListener('install', functio ...

  10. SPOJ LCS Longest Common Substring 和 LG3804 【模板】后缀自动机

    Longest Common Substring 给两个串A和B,求这两个串的最长公共子串. no more than 250000 分析 参照OI wiki. 给定两个字符串 S 和 T ,求出最长 ...