python下载文件记录黑名单的实现代码
具体代码如下所示:
#!/usr/bin/python
#-*-coding:GBK-*-
#-*-coding:UTF-8-*-
fromftplibimportFTP
importos
importdatetime
ftp_server='127.0.0.1'#对应ftp服务器地址
username='ponshine'#用户名
password='1qaz2wsx'#密码
ftp_path='/GBCC/'#ftp目录
local_path="C:\F\python\pythonwangtest\wyjj2\\"#本地的目录
#连接FTP
defftpconnect():
ftp=FTP()
ftp.set_debuglevel(2)#打开调试级别2,显示详细信息
ftp.connect(ftp_server,21)#连接
ftp.login(username,password)#登录,如果匿名登录则用空串代替即可
returnftp
#获取当前的年月日时分秒
defgetdatetime():
i=datetime.datetime.now()
date=("%s%s%s%s%s%s"%(i.year,i.month,i.day,i.hour,i.minute,i.second))
returndate#需返回才能取值
#获取当前的年月日
defgetdate():
importdatetime
i=datetime.datetime.now()
date=("%s%s%s"%(i.year,i.month,i.day))
returndate#需返回才能取值
defdownloadfile(remotepath,localpath):
ftp=ftpconnect()#连接ftp
printftp.getwelcome()#显示ftp服务器欢迎信息
ftp_filename=ftp.nlst(remotepath)#运用nlst()获取文件名
print'ftp_filename:',ftp_filename#ftp上的文件名
foreachfileinftp_filename:#循坏取文件名
ifeachfile.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
ifos.path.exists(writefiletext):
printwritefiletext+"isexists"
else:
printwritefiletext+"isnotexists"
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
ifall_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文件中添加需要过滤的词语
#过滤黑名单列表中出现的
defin_lists(str):
str_lists=[]
fd=open('./filter/blacklist')
forlineinfd.readlines():
str_lists.append(line.strip())
ifstrinstr_lists:
return0
else:
return1
通过python自带的filter函数调用,in_lists,filter函数会过滤掉bool值为1的列表中的元素
filter(in_lists,urls)
总结
以上所述是小编给大家介绍的python下载文件记录黑名单,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!