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中自定义函数的教程
Apr 27 Python
Python中返回字典键的值的values()方法使用
May 22 Python
Python实现动态图解析、合成与倒放
Jan 18 Python
python的dataframe转换为多维矩阵的方法
Apr 11 Python
pandas ix &iloc &loc的区别
Jan 10 Python
Python设计模式之建造者模式实例详解
Jan 17 Python
解决Pytorch 训练与测试时爆显存(out of memory)的问题
Aug 20 Python
用Python爬取QQ音乐评论并制成词云图的实例
Aug 24 Python
python实现飞行棋游戏
Feb 05 Python
Pyinstaller加密打包应用的示例代码
Jun 11 Python
Python enumerate() 函数如何实现索引功能
Jun 29 Python
基于Python pyecharts实现多种图例代码解析
Aug 10 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
jQuery EasyUI API 中文文档 - ComboGrid 组合表格
2011/10/13 Javascript
Javascript 面向对象(三)接口代码
2012/05/23 Javascript
js异步加载的三种解决方案
2013/03/04 Javascript
javascript中[]和{}对象使用介绍
2013/03/20 Javascript
如何正确使用javascript 来进行我们的程序开发
2014/06/23 Javascript
JS实现从表格中动态删除指定行的方法
2015/03/31 Javascript
Javascript字符串常用方法详解
2016/07/21 Javascript
jQuery编写网页版2048小游戏
2017/01/06 Javascript
基于iScroll实现下拉刷新和上滑加载效果
2017/07/18 Javascript
vue-cli3全面配置详解
2018/11/14 Javascript
Vue中computed、methods与watch的区别总结
2019/04/10 Javascript
JS实现可视化音频效果的实例代码
2020/01/16 Javascript
echarts实现晶体球面投影的实例教程
2020/10/10 Javascript
[00:27]DOTA2次级职业联赛 - Lilith战队宣传片
2014/12/01 DOTA
[01:56]生活中的妖精之七夕特别档
2016/08/09 DOTA
Python创建xml的方法
2015/03/10 Python
python返回昨天日期的方法
2015/05/13 Python
python实现查找excel里某一列重复数据并且剔除后打印的方法
2015/05/26 Python
Python上下文管理器和with块详解
2017/09/09 Python
实时获取Python的print输出流方法
2019/01/07 Python
python实现杨氏矩阵查找
2019/03/02 Python
python实现的爬取电影下载链接功能示例
2019/08/26 Python
Python + opencv对拍照得到的图片进行背景去除的实现方法
2020/11/18 Python
CSS3新增布局之: flex详解
2020/06/18 HTML / CSS
canvas画图被放大且模糊的解决方法
2020/08/11 HTML / CSS
印度和世界各地的精美产品:Ikka Dukka
2018/02/12 全球购物
意大利单身交友网站:Meetic
2020/07/12 全球购物
经典c++面试题五
2014/12/17 面试题
公务员保密承诺书
2014/03/27 职场文书
《和田的维吾尔》教学反思
2014/04/14 职场文书
财务管理专业毕业生求职信
2014/06/02 职场文书
话题作文之财富(600字)
2019/12/03 职场文书
七个Python必备的GUI库
2021/04/27 Python
Python 线程池模块之多线程操作代码
2021/05/20 Python
英镑符号 £
2022/02/17 杂记
python_tkinter弹出对话框创建
2022/03/20 Python