unzip.py
#!/usr/bin/env python#_*_ coding:utf-8 _*_'''
Created on 2017年8月22日
@author: ZHANGHENG266
'''import os
import zipfile
#解决办法1(有问题) #zip与tar类似,先读取多个文件名称,然后解压。#def un_zip(file_name,filepath):# try: # """unzip zip file"""# zip_file = zipfile.ZipFile(file_name)# if os.path.isdir(filepath):# pass# else:# os.mkdir(filepath)# for names in zip_file.namelist():# zip_file.extract(names,filepath)# zip_file.close()# except WindowsError, e:# un_zip(file_name,filepath)# print "Mysqldb Error:%s" % e#解决办法2 defun_zip(file_name):"""unzip zip file"""
zip_file = zipfile.ZipFile(file_name)
if os.path.isdir(file_name.replace(".zip","")):
passelse:
os.mkdir(file_name.replace(".zip",""))
for names in zip_file.namelist():
zip_file.extract(names,file_name.replace(".zip",""))
zip_file.close()
#遍历文件夹,并将文件解压到当前目录defeachFile(filepath):
pathDir = os.listdir(filepath) #获取当前路径下的文件名,返回Listprint pathDir
for s in pathDir:
newDir=os.path.join(filepath,s) #将文件命加入到当前文件路径后面print newDir
print s
if os.path.isfile(newDir): #如果是文件if".zip"in s :
print os.path.dirname(newDir)
un_zip(newDir)
# os.path.dirname(newDir)
c= set(os.listdir(filepath)) - set(pathDir)
for i in c:
eachFile(os.path.join(filepath,i))
else:
breakelse:
eachFile(newDir) #如果不是文件,递归这个文件夹的路径 if __name__ == '__main__':
eachFile("D:\Test")
pass
#!/usr/bin/env python#_*_ coding:utf-8 _*_'''
Created on 2017年8月28日
@author: ZHANGHENG266
'''import os
import re
#遍历目录,使生成单行日志defOneLine(filename):
fi = open (filename,'r')
mline = 0for line in open (filename,'r'):
linefi = fi.readline()
print linefi
result = re.findall(r"\b(?:[0-9]{1,3}\.){3}[0-9]{1,3}\b", linefi[0:16])
print result
for kw in kwcr:
print"lalal"if kw == "[ERROR] [":
fo = open ("D:\log\error.txt",'a')
print"error"if linefi[0:len(kw)] != kw:
fo.write(linefi.strip() + "<CR>")
mline=1else:
if mline==1:
fo.write("\n" + linefi[:-1])
mline=0else:
fo.write(linefi.strip()+"<CR>")
elif kw == "[INFO ] [":
fo = open ("D:\log\info.txt",'a')
print"info"if linefi[0:len(kw)] != kw:
fo.write(linefi.strip() + "<CR>")
mline=1else:
if mline==1:
fo.write("\n" + linefi[:-1])
mline=0else:
fo.write(linefi.strip()+"<CR>")
elif kw == "[WARN ]":
fo = open ("D:\log\warn.txt",'a')
print"warn"if linefi[0:len(kw)] != kw:
fo.write(linefi.strip() + "<CR>")
mline=1else:
if mline==1:
fo.write("\n" + linefi[:-1])
mline=0else:
fo.write(linefi.strip()+"<CR>")
# elif kw == "IP":# fo = open ("D:\log\localhost.txt",'a')# ip = result = re.findall(r"\b(?:[0-9]{1,3}\.){3}[0-9]{1,3}\b", linefi[0:16])# print "access"# if ip:# fo.write(linefi.strip() + "<CR>")# mline=1# else:# if mline==1:# fo.write("\n" + linefi[:-1])# mline=0# else:# fo.write(linefi.strip()+"<CR>")
fi.close()
fo.close()
defeachFile(filepath):
pathDir = os.listdir(filepath)
for s in pathDir:
newDir=os.path.join(filepath,s)
if os.path.isfile(newDir) :
if os.path.splitext(newDir)[1]==".txt"or os.path.splitext(newDir)[1]==".log":
print newDir
OneLine(newDir)
else:
# kwcount(newDir,kw)passelse:
eachFile(newDir)
if __name__ == '__main__':
print"lalal"
kwcr = ["[ERROR] [","[INFO ] [","[WARN ]"]
eachFile("D:\Test")
pass#-*- coding: UTF-8 -*- import os
import zipfile
import gzip
import tarfile
if os.path.exists("D:/test"):
message='文件夹存在'else:
os.mkdir("D:/test")
message='需要新建文件夹'print message
#解压zipdefun_zip(file_name):"""unzip zip file"""
zip_file = zipfile.ZipFile(file_name)
f_name = file_name.replace(".zip","")
# print f_nameif os.path.isdir(f_name):
passelse:
os.mkdir(f_name)
for names in zip_file.namelist():
zip_file.extract(names, f_name + "/")
zip_file.close()
#解压tardefun_tar(file_name):
tar = tarfile.open(file_name)
names = tar.getnames()
f_name = file_name.replace(".tar","")
if os.path.isdir(f_name):
passelse:
os.mkdir(f_name)
#因为解压后是很多文件,预先建立同名目录for name in names:
tar.extract(name, f_name + "/")
tar.close()
defun_gz(file_name):"""ungz zip file"""
f_name = file_name.replace(".gz", "")
#获取文件的名称,去掉
g_file = gzip.GzipFile(file_name)
#创建gzip对象
open(f_name, "w+").write(g_file.read())
#gzip对象用read()打开后,写入open()建立的文件里。
g_file.close()
#关闭gzip对象 defdirlist(path,allfile):
filelist = os.listdir(path)
for filename in filelist:
filepath = os.path.join(path,filename)
if os.path.isdir(filepath):
dirlist(filepath,allfile)
else:
if tarfile.is_tarfile(filepath):
un_tar(filepath)
if zipfile.is_zipfile(filepath):
un_zip(filepath)
return allfile