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根据出生日期获得年龄的方法
Mar 31 Python
python 对象和json互相转换方法
Mar 22 Python
python实现批量图片格式转换
Jun 16 Python
对python csv模块配置分隔符和引用符详解
Dec 12 Python
python批量下载抖音视频
Jun 17 Python
python二维码操作:对QRCode和MyQR入门详解
Jun 24 Python
Python3 批量扫描端口的例子
Jul 25 Python
Django中提供的6种缓存方式详解
Aug 05 Python
Python开发之基于模板匹配的信用卡数字识别功能
Jan 13 Python
Python callable内置函数原理解析
Mar 05 Python
python 最简单的实现适配器设计模式的示例
Jun 30 Python
python 使用建议与技巧分享(四)
Aug 18 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
asp和php下textarea提交大量数据发生丢失的解决方法
2008/01/20 PHP
php5新改动之短标记启用方法
2008/09/11 PHP
ThinkPHP跳转页success及error模板实例教程
2014/07/17 PHP
详解PHP中的 input属性(隐藏 只读 限制)
2017/08/14 PHP
PHP通过文件路径获取文件名的实例代码
2018/10/14 PHP
用js生产批量批处理执行命令
2008/07/28 Javascript
JQuery 解析多维的Json数据格式
2009/11/02 Javascript
js 父窗口控制子窗口的行为-打开,关闭,重定位,回复
2010/04/20 Javascript
关于extjs treepanel复选框选中父节点与子节点的问题
2013/04/02 Javascript
jquery插件jquery倒计时插件分享
2013/12/27 Javascript
JavaScript实现基于Cookie的存储类实例
2015/04/10 Javascript
通过Tabs方法基于easyUI+bootstrap制作工作站
2016/03/28 Javascript
Js 获取当前函数参数对象的实现代码
2016/06/20 Javascript
JS中使用DOM来控制HTML元素
2016/07/31 Javascript
原生JS控制多个滚动条同步跟随滚动效果
2017/12/22 Javascript
详解AngularJS之$window窗口对象
2018/01/17 Javascript
jquery实现的简单轮播图功能【适合新手】
2018/08/17 jQuery
UEditor 自定义图片视频尺寸校验功能的实现代码
2020/10/20 Javascript
[02:03]永远的信仰DOTA2 中国军团历届国际邀请赛回顾
2016/06/26 DOTA
《Python之禅》中对于Python编程过程中的一些建议
2015/04/03 Python
Python中的super用法详解
2015/05/28 Python
对python .txt文件读取及数据处理方法总结
2018/04/23 Python
python下载微信公众号相关文章
2019/02/26 Python
python接口自动化(十六)--参数关联接口后传(详解)
2019/04/16 Python
Pytorch之view及view_as使用详解
2019/12/31 Python
关于python3.9安装wordcloud出错的问题及解决办法
2020/11/02 Python
HTML5 window/iframe跨域传递消息 API介绍
2013/08/26 HTML / CSS
春节联欢晚会主持词范文
2014/03/24 职场文书
领导干部廉政承诺书
2014/03/27 职场文书
学生鉴定评语大全
2014/05/05 职场文书
法人任命书范本
2014/06/04 职场文书
新农村建设指导员工作总结
2015/08/13 职场文书
员工给公司的建议书
2019/06/24 职场文书
Ajax实现三级联动效果
2021/10/05 Javascript
mysql中DCL常用的用户和权限控制
2022/03/31 MySQL
Python多线程实用方法以及共享变量资源竞争问题
2022/04/12 Python