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 Mysql数据库操作 Perl操作Mysql数据库
Jan 12 Python
python实现得到一个给定类的虚函数
Sep 28 Python
python在指定目录下查找gif文件的方法
May 04 Python
Linux下将Python的Django项目部署到Apache服务器
Dec 24 Python
Python实现OpenCV的安装与使用示例
Mar 30 Python
python全栈知识点总结
Jul 01 Python
解决Python对齐文本字符串问题
Aug 28 Python
python代码打印100-999之间的回文数示例
Nov 24 Python
Python描述符descriptor使用原理解析
Mar 21 Python
django日志默认打印request请求信息的方法示例
May 17 Python
ubuntu16.04升级Python3.5到Python3.7的方法步骤
Aug 20 Python
Python接口自动化测试的实现
Aug 28 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
基于mysql的bbs设计(三)
2006/10/09 PHP
深入了解 register_globals (附register_globals=off 网站打不开的解决方法)
2012/06/27 PHP
使用php 获取时间今天明天昨天时间戳的详解
2013/06/20 PHP
jquery 选择器部分整理
2009/10/28 Javascript
JS数组的赋值介绍
2014/03/10 Javascript
javascript实现根据iphone屏幕方向调用不同样式表的方法
2015/07/13 Javascript
JS 数字转换为大写金额的简单实例
2016/08/04 Javascript
Node.js复制文件的方法示例
2016/12/29 Javascript
Node.js实现注册邮箱激活功能的方法示例
2018/03/23 Javascript
JS实现的JSON序列化操作简单示例
2018/07/02 Javascript
vue项目在安卓低版本机显示空白的原因分析(两种)
2018/09/04 Javascript
node.js 模块和其下载资源的镜像设置的方法
2018/09/06 Javascript
JavaScript基础教程之如何实现一个简单的promise
2018/09/11 Javascript
jQuery内容过滤选择器与子元素过滤选择器用法实例分析
2019/02/20 jQuery
LayUI动态设置checkbox不显示的解决方法
2019/09/02 Javascript
python网络编程学习笔记(10):webpy框架
2014/06/09 Python
python3读取csv和xlsx文件的实例
2018/06/22 Python
Python 多线程不加锁分块读取文件的方法
2018/12/11 Python
Pyinstaller打包.py生成.exe的方法和报错总结
2019/04/02 Python
python爬虫 爬取超清壁纸代码实例
2019/08/16 Python
Python如何基于selenium实现自动登录博客园
2019/12/16 Python
Python基于Socket实现简单聊天室
2020/02/17 Python
python plt可视化——打印特殊符号和制作图例代码
2020/04/17 Python
Python虚拟环境库virtualenvwrapper安装及使用
2020/06/17 Python
巴西购物网站:Estrela10
2018/12/13 全球购物
比利时的在线灯具店:Lampen24.be
2019/07/01 全球购物
关于工资低的辞职信
2014/01/14 职场文书
股权投资意向书
2014/04/01 职场文书
企业总经理任命书
2014/06/05 职场文书
党员查摆四风问题思想汇报
2014/10/25 职场文书
自愿离婚协议书2015
2015/01/26 职场文书
志愿者个人总结
2015/03/03 职场文书
社区公民道德宣传日活动总结
2015/03/23 职场文书
2015年企业工作总结范文
2015/04/28 职场文书
MySQL中的隐藏列的具体查看
2021/09/04 MySQL
Python3.8官网文档之类的基础语法阅读
2021/09/04 Python