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中的__getitem__方法与slice对象的切片操作
Jun 27 Python
基于Python代码编辑器的选用(详解)
Sep 13 Python
python线程中同步锁详解
Apr 27 Python
基于Django框架利用Ajax实现点赞功能实例代码
Aug 19 Python
python 实现方阵的对角线遍历示例
Nov 29 Python
python基于三阶贝塞尔曲线的数据平滑算法
Dec 27 Python
django实现将后台model对象转换成json对象并传递给前端jquery
Mar 16 Python
如何在Django中使用聚合的实现示例
Mar 23 Python
在Windows上安装和配置 Jupyter Lab 作为桌面级应用程序教程
Apr 22 Python
基于Python实现下载网易音乐代码实例
Aug 10 Python
python中print格式化输出的问题
Apr 16 Python
python缺失值的解决方法总结
Jun 09 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
实现了一个PHP5的getter/setter基类的代码
2007/02/25 PHP
php判断终端是手机还是电脑访问网站的思路及代码
2013/04/24 PHP
PHP中redis的用法深入解析
2014/02/20 PHP
php数组键名技巧小结
2015/02/17 PHP
php图像处理类实例
2015/07/28 PHP
PHP根据session与cookie用户登录状态操作类的代码
2016/05/13 PHP
php实现支持中文的文件下载功能示例
2017/08/30 PHP
Javascript中的常见排序算法
2007/03/27 Javascript
几个javascript操作word的参考代码
2009/10/26 Javascript
jQuery解决iframe高度自适应代码
2009/12/20 Javascript
javascript小组件 原生table排序表格脚本(兼容ie firefox opera chrome)
2012/07/25 Javascript
document.documentElement和document.body区别介绍
2013/09/16 Javascript
教你用AngularJS框架一行JS代码实现控件验证效果
2014/06/23 Javascript
JavaScript和jquery获取父级元素、子级元素、兄弟元素的方法
2016/06/05 Javascript
JS弹出新窗口被拦截的解决方法
2016/08/09 Javascript
详解浏览器渲染页面过程
2017/02/09 Javascript
Avalonjs双向数据绑定与监听的实例代码
2017/06/23 Javascript
详解使用Typescript开发node.js项目(简单的环境配置)
2017/10/09 Javascript
Bootstrap栅格系统的使用详解
2017/10/30 Javascript
Vue.directive使用注意(小结)
2018/08/31 Javascript
使用jQuery给Table动态增加行、清空table的方法
2018/09/05 jQuery
卸载vue2.0并升级vue_cli3.0的实例讲解
2020/02/16 Javascript
[41:54]2018DOTA2亚洲邀请赛 4.1 小组赛A组加赛 TNC vs Liquid
2018/04/03 DOTA
Python利用pandas计算多个CSV文件数据值的实例
2018/04/19 Python
Python实现正则表达式匹配任意的邮箱方法
2018/12/20 Python
对Python 语音识别框架详解
2018/12/24 Python
Python中的 ansible 动态Inventory 脚本
2020/01/19 Python
matplotlib之pyplot模块坐标轴标签设置使用(xlabel()、ylabel())
2021/02/22 Python
广播电视新闻学专业应届生求职信
2013/10/08 职场文书
酒店采购员岗位职责
2014/03/14 职场文书
心理咨询专业自荐信
2014/07/07 职场文书
班子群众路线教育实践个人对照检查材料思想汇报
2014/09/30 职场文书
入伍通知书
2015/04/23 职场文书
小学运动会加油词
2015/07/18 职场文书
剑指Offer之Java算法习题精讲二叉树专项训练
2022/03/21 Java/Android
mysql 索引的数据结构为什么要采用B+树
2022/04/26 MySQL