python下载文件记录黑名单的实现代码


Posted in Python onOctober 24, 2017

具体代码如下所示:

#!/usr/bin/python
# -*- coding: GBK -*-
# -*- coding: UTF-8 -*-
from ftplib import FTP
import os
import datetime
ftp_server = '127.0.0.1' # 对应ftp服务器地址
username = 'ponshine' # 用户名
password = '1qaz2wsx' # 密码
ftp_path = '/GBCC/' # ftp目录
local_path = "C:\F\python\pythonwangtest\wyjj2\\" #本地的目录
# 连接FTP
def ftpconnect():
  ftp = FTP()
  ftp.set_debuglevel(2) # 打开调试级别2,显示详细信息
  ftp.connect(ftp_server, 21) # 连接
  ftp.login(username, password) # 登录,如果匿名登录则用空串代替即可
  return ftp
# 获取当前的年月日时分秒
def getdatetime():
  i = datetime.datetime.now()
  date = ("%s%s%s%s%s%s" % (i.year, i.month, i.day, i.hour,i.minute,i.second))
  return date # 需返回才能取值
# 获取当前的年月日
def getdate():
  import datetime
  i = datetime.datetime.now()
  date = ("%s%s%s" % (i.year, i.month, i.day))
  return date # 需返回才能取值
def downloadfile(remotepath, localpath):
  ftp = ftpconnect() # 连接ftp
  print ftp.getwelcome() # 显示ftp服务器欢迎信息
  ftp_filename = ftp.nlst(remotepath) # 运用nlst()获取文件名
  print 'ftp_filename: ', ftp_filename # ftp上的文件名
  for eachfile in ftp_filename: # 循坏取文件名
    if eachfile.endswith('.AVL'):
      localpath_files = eachfile.split("/")
      localpath_file = localpath_files[len(localpath_files) - 1] # 文件名:localpath_file= GBCC_201611102155_01.AVL
      print "localpath_file--->" + localpath_file
      # 创建记录下载文件名的文件名
      writefiletext = local_path + getdate() + ".txt" # 记录下载后的文件名
      print "writefile_text--->" + writefiletext

 
      if os.path.exists(writefiletext):
        print writefiletext + "is exists"
      else:
        print writefiletext + "is not exists"
        makefile = open(writefiletext,"w+")
        makefile.close()
      files = open(writefiletext, "r") # 打开黑名单表
      print "writefiletext--->" + writefiletext
      try:
        all_the_text = files.read()
        print "all_the_text-------》" + all_the_text
        if all_the_text.__contains__(localpath_file):
          print "文件已下载,不需要重复下载"
        else:
          print "文件没有下载,现在开始下载"
          bufsize = 1024 # 设置缓冲块大小
          fp = open(localpath + localpath_file, "wb+")
          ftp.retrbinary('RETR ' + eachfile, fp.write, bufsize) # 下载文件
          fo = open(writefiletext,"ab+")
          fo.write(localpath_file + "\n") # 将每个文件名写入文件
          fo.flush() # 刷新文件
          fo.close()
          fp.flush()
      finally:
        print "结束了"
        files.close()
  ftp.set_debuglevel(0)
  ftp.close()
if __name__ == "__main__":
  downloadfile("/GBCC", "C:\F\python\pythonwangtest\wyjj2\\")

  补充:python 黑名单过滤

  需要过滤一些词语

写了下面这个函数,在blacklist 文件中添加需要过滤的词语

#过滤黑名单列表中出现的
def in_lists(str):
  str_lists=[]
  fd = open('./filter/blacklist')
  for line in fd.readlines():
    str_lists.append(line.strip())
  if str in str_lists:
    return 0
  else:
    return 1

通过 python 自带的 filter函数 调用, in_lists ,filter函数会过滤掉 bool 值为 1 的列表中的元素

 filter( in_lists , urls )

总结

以上所述是小编给大家介绍的python下载文件记录黑名单,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Python 相关文章推荐
python绘图库Matplotlib的安装
Jul 03 Python
跟老齐学Python之网站的结构
Oct 24 Python
Python实现Windows上气泡提醒效果的方法
Jun 03 Python
Python3控制路由器——使用requests重启极路由.py
May 11 Python
Python轻量级ORM框架Peewee访问sqlite数据库的方法详解
Jul 20 Python
python3 requests中使用ip代理池随机生成ip的实例
May 07 Python
Python编程深度学习计算库之numpy
Dec 28 Python
使用python获取邮箱邮件的设置方法
Sep 20 Python
Python语法之精妙的十个知识点(装B语法)
Jan 18 Python
Python中的wordcloud库安装问题及解决方法
May 27 Python
python函数超时自动退出的实操方法
Dec 28 Python
教你用python实现12306余票查询
Jun 30 Python
基于python中staticmethod和classmethod的区别(详解)
Oct 24 #Python
Flask数据库迁移简单介绍
Oct 24 #Python
python里使用正则表达式的组嵌套实例详解
Oct 24 #Python
Scrapy的简单使用教程
Oct 24 #Python
详解python里使用正则表达式的分组命名方式
Oct 24 #Python
在python中使用正则表达式查找可嵌套字符串组
Oct 24 #Python
python爬虫之BeautifulSoup 使用select方法详解
Oct 23 #Python
You might like
简单的用PHP编写的导航条程序
2006/10/09 PHP
新手配置 PHP 调试环境(IIS+PHP+MYSQL)
2007/01/10 PHP
php入门学习知识点五 关于php数组的几个基本操作
2011/07/14 PHP
CI框架给视图添加动态数据
2014/12/01 PHP
微信自定义菜单的创建/查询/取消php示例代码
2016/08/05 PHP
Yii2 加载css、js 载静态资源的方法
2017/03/10 PHP
thinkPHP框架可添加js事件的分页类customPage.class.php完整实例
2017/03/16 PHP
Yii 2.0在Grid中格式化时间方法示例
2017/06/06 PHP
PHP使用PHPExcel实现批量上传到数据库的方法
2017/06/08 PHP
解析jQuery的三种bind/One/Live事件绑定使用方法
2013/12/30 Javascript
JS判断是否360安全浏览器极速内核的方法
2015/01/29 Javascript
JavaScript实现文本框中默认显示背景图片在获得焦点后消失的方法
2015/07/01 Javascript
JavaScript html5 canvas画布中删除一个块区域的方法
2016/01/26 Javascript
原生js实现网易轮播图效果
2020/04/10 Javascript
微信小程序 wxapp内容组件 icon详细介绍
2016/10/31 Javascript
原生js实现返回顶部缓冲效果
2017/01/18 Javascript
Vuex模块化实现待办事项的状态管理
2017/03/15 Javascript
nodejs 日志模块winston的使用方法
2018/05/02 NodeJs
关于RxJS Subject的学习笔记
2018/12/05 Javascript
微信小程序实现文字跑马灯
2020/05/26 Javascript
Angular 多级路由实现登录页面跳转(小白教程)
2019/11/19 Javascript
Vue+Spring Boot简单用户登录(附Demo)
2020/11/12 Javascript
[04:09]2018年度DOTA2社区贡献奖-完美盛典
2018/12/16 DOTA
python使用urllib2模块获取gravatar头像实例
2013/12/18 Python
Python中的匿名函数使用简介
2015/04/27 Python
关于Python中Inf与Nan的判断问题详解
2017/02/08 Python
Django实现跨域的2种方法
2019/07/31 Python
Python实现直播推流效果
2019/11/26 Python
pytorch实现保证每次运行使用的随机数都相同
2020/02/20 Python
Pytest参数化parametrize使用代码实例
2020/02/22 Python
实现strstr功能,即在父串中寻找子串首次出现的位置
2016/08/05 面试题
办公室文秘自我鉴定
2013/09/21 职场文书
小学体育教学反思
2014/01/31 职场文书
2015年元旦文艺汇演主持词
2014/03/26 职场文书
优秀家长事迹材料
2014/05/17 职场文书
公司食堂管理制度
2015/08/05 职场文书