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求crc32值的方法
Oct 05 Python
Python实现向QQ群成员自动发邮件的方法
Nov 19 Python
python3实现短网址和数字相互转换的方法
Apr 28 Python
详解Python中的__new__、__init__、__call__三个特殊方法
Jun 02 Python
Python时间获取及转换知识汇总
Jan 11 Python
Python subprocess模块常见用法分析
Jun 12 Python
python selenium 执行完毕关闭chromedriver进程示例
Nov 15 Python
Python实现动态循环输出文字功能
May 07 Python
python 浮点数四舍五入需要注意的地方
Aug 18 Python
python opencv实现简易画图板
Aug 27 Python
OpenCV-Python使用cv2实现傅里叶变换
Jun 09 Python
Pycharm连接远程服务器并远程调试的全过程
Jun 24 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开发框架总结收藏
2008/04/24 PHP
在Windows系统上安装PHP运行环境文字教程
2010/07/19 PHP
常见php数据文件缓存类汇总
2014/12/05 PHP
分享PHP函数实现数字与文字分页代码
2015/07/28 PHP
PHP中非常有用却鲜有人知的函数集锦
2019/08/17 PHP
延时重复执行函数 lLoopRun.js
2007/05/08 Javascript
Prototype 学习 工具函数学习($w,$F方法)
2009/07/12 Javascript
javascript之学会吝啬 精简代码
2010/04/25 Javascript
javascript 数据类型转换(parseInt,parseFloat)
2010/07/20 Javascript
javascript验证只能输入数字和一个小数点示例
2013/10/21 Javascript
js图片闪动特效可以控制间隔时间如几分钟闪动一下
2014/08/12 Javascript
javascript操作Cookie(设置、读取、删除)方法详解
2015/03/18 Javascript
js由下向上不断上升冒气泡效果实例
2015/05/07 Javascript
javascript函数特点实例分析
2015/05/14 Javascript
Jquery实现顶部弹出框特效
2015/08/08 Javascript
终于实现了!精彩的jquery弹幕效果
2016/07/18 Javascript
AngularJS控制器之间的数据共享及通信详解
2016/08/01 Javascript
Angularjs 事件指令详细整理
2017/07/27 Javascript
基于vue+canvas的excel-like组件实例详解
2017/11/28 Javascript
关于Vue源码vm.$watch()内部原理详解
2019/04/26 Javascript
微信小程序实现手势滑动卡片效果
2019/08/26 Javascript
python爬虫爬取淘宝商品信息(selenum+phontomjs)
2018/02/24 Python
分享vim python缩进等一些配置
2018/07/02 Python
对Python Class之间函数的调用关系详解
2019/01/23 Python
美国最佳选择产品网站:Best Choice Products
2019/05/27 全球购物
Hotels.com日本:国外和海外住宿,酒店预订
2019/12/13 全球购物
天网面试题
2013/04/07 面试题
Linux中如何用命令创建目录
2015/01/12 面试题
介绍一下Ruby的特点
2013/01/20 面试题
幼儿园亲子活动方案
2014/01/29 职场文书
环保倡议书怎么写
2014/05/16 职场文书
最美家庭活动方案
2014/08/31 职场文书
西双版纳导游词
2015/02/03 职场文书
办公室禁烟通知
2015/04/23 职场文书
2015年办税服务厅工作总结
2015/07/23 职场文书
2019年行政人事个人工作总结范本!
2019/07/19 职场文书