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实现中文输出的两种方法
May 09 Python
Python中常用操作字符串的函数与方法总结
Feb 04 Python
Python中在for循环中嵌套使用if和else语句的技巧
Jun 20 Python
举例讲解Python编程中对线程锁的使用
Jul 12 Python
Python字符串格式化的方法(两种)
Sep 19 Python
对pandas将dataframe中某列按照条件赋值的实例讲解
Nov 29 Python
python射线法判断一个点在图形区域内外
Jun 28 Python
Python Pandas数据中对时间的操作
Jul 30 Python
python wxpython 实现界面跳转功能
Dec 17 Python
Python3如何使用range函数替代xrange函数
Oct 05 Python
python 对xml解析的示例
Feb 27 Python
pytorch实现线性回归以及多元回归
Apr 11 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函数(简单整理)
2010/04/30 PHP
PHP随机生成随机个数的字母组合示例
2014/01/14 PHP
Windows下php+mysql5.7配置教程
2017/05/16 PHP
PHP7扩展开发教程之Hello World实现方法示例
2017/08/03 PHP
TP3.2框架分页相关实现方法分析
2020/06/03 PHP
JavaScript 设计模式之组合模式解析
2010/04/09 Javascript
ASP.NET MVC中EasyUI的datagrid跨域调用实现代码
2012/03/14 Javascript
jquery select动态加载选择(兼容各种浏览器)
2013/02/01 Javascript
JavaScript保留两位小数的2个自定义函数
2014/05/05 Javascript
jquery实现导航固定顶部的效果仿蘑菇街
2014/10/22 Javascript
基于jquery实现可定制的web在线富文本编辑器附源码下载
2015/11/17 Javascript
通过设置CSS中的position属性来固定层的位置
2015/12/14 Javascript
JS数组操作(数组增加、删除、翻转、转字符串、取索引、截取(切片)slice、剪接splice、数组合并)
2016/05/20 Javascript
浅谈jQuery 选择器和dom操作
2016/06/07 Javascript
EasyUI学习之DataGird分页显示数据
2016/12/29 Javascript
Javascript实现从小到大的数组转换成二叉搜索树
2017/06/13 Javascript
解决vue build打包之后首页白屏的问题
2018/03/06 Javascript
Vue2.0 实现单选互斥的方法
2018/04/13 Javascript
JS实现将对象转化为数组的方法分析
2019/01/21 Javascript
vue 强制组件重新渲染(重置)的两种方案
2019/10/29 Javascript
python自然语言编码转换模块codecs介绍
2015/04/08 Python
Windows下python2.7.8安装图文教程
2016/05/26 Python
python3+PyQt5图形项的自定义和交互 python3实现page Designer应用程序
2020/07/20 Python
python使用参数对嵌套字典进行取值的方法
2019/04/26 Python
Python上下文管理器用法及实例解析
2019/11/11 Python
Django中日期时间型字段进行年月日时分秒分组统计
2020/11/27 Python
Python 排序最长英文单词链(列表中前一个单词末字母是下一个单词的首字母)
2020/12/14 Python
ghd官网:英国ghd直发器品牌
2018/05/04 全球购物
大学活动总结范文
2014/04/29 职场文书
学生自我鉴定格式及范文
2014/09/16 职场文书
2014年德育工作总结
2014/11/20 职场文书
关于倡议书的范文
2015/04/29 职场文书
2016党员干部廉政准则学习心得体会
2016/01/20 职场文书
导游词之泰山玉皇顶
2019/12/23 职场文书
Python 把两层列表展开平铺成一层(5种实现方式)
2021/04/07 Python
Spring Boot配合PageHelper优化大表查询数据分页
2022/04/20 Java/Android