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代码真的很爽
Aug 26 Python
跟老齐学Python之画圈还不简单吗?
Sep 20 Python
Python中的os.path路径模块中的操作方法总结
Jul 07 Python
python3新特性函数注释Function Annotations用法分析
Jul 28 Python
Python基于回溯法子集树模板解决选排问题示例
Sep 07 Python
Python变量赋值的秘密分享
Apr 03 Python
利用python如何处理nc数据详解
May 23 Python
Sanic框架安装与简单入门示例
Jul 16 Python
Python 一键制作微信好友图片墙的方法
May 16 Python
Pycharm简单使用教程(入门小结)
Jul 04 Python
Python实现ATM系统
Feb 17 Python
在pycharm中使用pipenv创建虚拟环境和安装django的详细教程
Nov 30 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与php MySQL 之间的关系
2009/07/17 PHP
PHP 向右侧拉菜单实现代码,测试使用中
2009/11/03 PHP
php下网站防IP攻击代码,超级实用
2010/10/24 PHP
PHP学习之字符串比较和查找
2011/04/17 PHP
jquery的index方法实现tab效果
2011/02/16 Javascript
让低版本浏览器支持input的placeholder属性(js方法)
2013/04/03 Javascript
js获取input标签的输入值实现代码
2013/08/05 Javascript
JavaScript设计模式之单件模式介绍
2014/12/28 Javascript
AngularJs根据访问的页面动态加载Controller的解决方案
2015/02/04 Javascript
jQuery实现分章节锚点“回到顶部”动画特效代码
2015/10/23 Javascript
简单实现jQuery进度条轮播实例代码
2016/06/20 Javascript
JQuery Ajax WebService传递参数的简单实例
2016/11/02 Javascript
使用vue.js实现checkbox的全选和多个的删除功能
2017/02/17 Javascript
浅谈js for循环输出i为同一值的问题
2017/03/01 Javascript
详解微信第三方小程序代开发
2017/06/23 Javascript
简单实现js轮播图效果
2017/07/14 Javascript
使用D3.js创建物流地图的示例代码
2018/01/27 Javascript
vue服务端渲染缓存应用详解
2018/09/12 Javascript
vue实现下拉加载其实没那么复杂
2019/08/13 Javascript
在vue中使用echarts(折线图的demo,markline用法)
2020/07/20 Javascript
python实现爬虫下载漫画示例
2014/02/16 Python
在Python编程过程中用单元测试法调试代码的介绍
2015/04/02 Python
python学习之编写查询ip程序
2016/02/27 Python
使用Python制作简单的小程序IP查看器功能
2019/04/16 Python
Tensorflow实现神经网络拟合线性回归
2019/07/19 Python
使用 Python 清理收藏夹里已失效的网站
2019/12/03 Python
Python3加密解密库Crypto的RSA加解密和签名/验签实现方法实例
2020/02/11 Python
美国知名的女性服饰品牌:LOFT(洛芙特)
2016/08/05 全球购物
美国饼干礼物和美食甜点购买网站:Cheryl’s
2020/05/28 全球购物
一套SQL笔试题
2016/08/14 面试题
大学生应聘自荐信
2013/10/11 职场文书
趵突泉导游词
2015/02/03 职场文书
2015年教育实习工作总结
2015/04/24 职场文书
死亡诗社观后感
2015/06/05 职场文书
node.js使用express-fileupload中间件实现文件上传
2021/07/16 Javascript
使用Mysql计算地址的经纬度距离和实时位置信息
2022/04/29 MySQL