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中的len()函数的使用
Apr 07 Python
Python实现获取操作系统版本信息方法
Apr 08 Python
Python 专题五 列表基础知识(二维list排序、获取下标和处理txt文本实例)
Mar 20 Python
基于Python_脚本CGI、特点、应用、开发环境(详解)
May 23 Python
Python信息抽取之乱码解决办法
Jun 29 Python
python 实现上传图片并预览的3种方法(推荐)
Jul 14 Python
django 开发忘记密码通过邮箱找回功能示例
Apr 17 Python
Django使用详解:ORM 的反向查找(related_name)
May 30 Python
python 获取页面表格数据存放到csv中的方法
Dec 26 Python
python开启debug模式的方法
Jun 27 Python
Python使用itchat 功能分析微信好友性别和位置
Aug 05 Python
Python倒排索引之查找包含某主题或单词的文件
Nov 13 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网站在线人数统计
2008/04/09 PHP
php学习笔记 [预定义数组(超全局数组)]
2011/06/09 PHP
PHP 命令行工具 shell_exec, exec, passthru, system详细使用介绍
2011/09/11 PHP
有关phpmailer的详细介绍及使用方法
2013/01/28 PHP
用jQuery简化JavaScript开发分析
2009/02/19 Javascript
javascript 获取函数形参个数
2014/07/31 Javascript
Javascript使用post方法提交数据实例
2015/08/03 Javascript
js使用cookie记录用户名的方法
2015/11/26 Javascript
jQuery实现选项卡切换效果简单演示
2015/12/09 Javascript
jQuery插件 Jqplot图表实例
2016/06/18 Javascript
Require.js的基本用法详解
2017/07/03 Javascript
vue-cli如何引入bootstrap工具的方法
2017/10/19 Javascript
ExtJs整合Echarts的示例代码
2018/02/27 Javascript
npm scripts 使用指南详解
2018/10/08 Javascript
浅谈Vue 性能优化之深挖数组
2018/12/11 Javascript
浅谈Layui的eleTree树式选择器使用方法
2019/09/25 Javascript
微信小程序点击列表跳转到对应详情页过程解析
2019/09/26 Javascript
单线程JavaScript实现异步过程详解
2020/05/19 Javascript
编写v-for循环的技巧汇总
2020/12/01 Javascript
Taro小程序自定义顶部导航栏功能的实现
2020/12/17 Javascript
python求解水仙花数的方法
2015/05/11 Python
Python使用turtule画五角星的方法
2015/07/09 Python
python实现用户登录系统
2016/05/21 Python
详解字典树Trie结构及其Python代码实现
2016/06/03 Python
TensorFlow安装及jupyter notebook配置方法
2017/09/08 Python
Python实现的在特定目录下导入模块功能分析
2019/02/11 Python
详解python-图像处理(映射变换)
2019/03/22 Python
python datetime时间格式的相互转换问题
2020/06/11 Python
Python引入多个模块及包的概念过程解析
2020/09/21 Python
HTML5实现QQ聊天气泡效果
2017/06/26 HTML / CSS
Html5新标签datalist实现输入框与后台数据库数据的动态匹配
2017/05/18 HTML / CSS
Martinelli官方商店:西班牙皮鞋和高跟鞋品牌
2019/07/30 全球购物
个人遵守党的政治纪律情况对照检查材料思想汇报
2014/09/25 职场文书
总经理助理岗位职责范本
2015/03/31 职场文书
zabbix监控mysql的实例方法
2021/06/02 MySQL
python数字图像处理实现图像的形变与缩放
2022/06/28 Python