在气象领域,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. Linux文件(夹)属性

    ll  或者 ls -lh 查看文件属性:

  2. 【leetcode】366.Find Leaves of Binary Tree

    原题 Given a binary tree, collect a tree's nodes as if you were doing this: Collect and remove all lea ...

  3. Django之简介

    一.MVC模型与MTV模型 MVC模型就是Web服务器开发领域里著名的MVC模式,所谓MVC就是把Web应用分为模型(M),控制器(C)和视图(V)三层,他们之间以一种插件式的.松耦合的方式连接在一起 ...

  4. nginx连接php测试

    1 nginx连接php [root@web01 /application/nginx/conf/conf.d]# cat docs.conf server { server_name docs.ol ...

  5. ubuntu 启动图形界面 sudo init 5

    Linux系统最早期的时候只有命令行界面,所有的工作都需要用Linux命令来完成. 随着系统的发展,以及图形界面系统的出现,Linux也出现了图形界面,使得Linux系统不再是只有计算机的专业人士才可 ...

  6. Mongodb创建用户Error: couldn’t add user: Use of SCRAM-SHA-256 requires undigested passwords

    解决方案:修改mechanisms加密方式为SCRAM-SHA-1 db.createUser({ user: "admin", pwd: "xxx", rol ...

  7. Git----常见工作管理总结

    1.工作流程模式: 首先,可以试图用git push origin branch-name推送自己的修改 如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并 如果合并有冲突, ...

  8. Spring Boot学习--spring-boot-starter-parent及starters(转)

    在官方文档的第三部分的13块讲述了引用的管理,官方推荐的是使用Maven和Gradle. 我一直在用的是maven,而且使用maven有些优势–spring-boot-starter-parent,这 ...

  9. LeetCode 273. Integer to English Words

    原题链接在这里:https://leetcode.com/problems/integer-to-english-words/description/ 题目: Convert a non-negati ...

  10. 067_查看 KVM 虚拟机中的网卡信息(不需要进入启动或进入虚拟机)

    #!/bin/bash #该脚本使用 guestmount 工具,可以将虚拟机的磁盘系统挂载到真实机文件系统中#Centos7.2 中安装 libguestfs-tools-c 可以获得 guestm ...