python 文件综合操作

“‘

目的:综合文件操作相关属性设计示例

示例说明:本示例主要目的是将给定目录下所有满足条件的文件进行压缩,并且以当前时间为名称,如果已经存在,则继续压缩到之前目录,如果不存在,则以当前时间为名称

作者:琦琦爸爸

’”

#coding:utf-8

import datetime

import os

import zipfile

 

#按现在时间为压缩文件取名

def make_name():

  #获取当前时间,包括年月日时分秒

  i=str(datatime.datatime.now())

  #取前面的年月日

  name=i.split(' ')[0]

  #将年月日加上后缀名称

  name=name+'.zip'

  #返回文件名称,为后面调用铺垫

  return name

 

def dabao():

  #判断给定的文件路径是否是目录或者是文件

  if not os.path.isdir(path) and not os.path.isfile(path):

    return False

  #判断文件是否是目录,如果是,则执行下面代码

  if os.path.isfile(paht)

    #区分目录路径和文件路径

    f=os.path.split(path)

    #重组目录路径和文件名

    path=f[0]+'/'+f[1]

    #获取文件后缀名

    file_end=f[1].split('.')[-1]

    #定义哪些后缀名需要打包压缩的

    wenjianhouzui=['txt','log']

    #循环查找哪些文件满足条件

    if file_end in wenjianhouzui:

      dir_mulu=f[0]+'/'+make_name()

        判断压缩的文件名是否存在,如果不存在,就以“w”的方式写入(其实可以只保留下面的方式,但为了了解w和a的区别,故多用了一个判断)

        if not os.path.exists(dir_mulu):

          f=zipfile.Zipfile(dir_mulu,'w')

          f.write(path)

          f.close()

          #删除已经打包的文件

          os.remove(path)

        else:

          dir_mulu=f[0]+'/'+make_name()

          #这里的“a”是追加执行。如果改成“w”,则只会压缩最后一次压缩的文件,之前的会被删除

          f=zipfile.Zipfile(dir_mulu,'a')

          f.write(path)

          f.close()

          os.remove(path)

    #判断给定的目录是否是目录,如果是执行下面的代码

    if os.path.isdir(path):

      #列出目录下的所有的文件名,并且遍历所有的文件

      for x in os.listdir(path):

        #组装目录名和文件名

        name=os.path.join(path,x)

        #将组装好的名字传递给函数dabao去执行

        dabao(name)

 

#给定一个需要压缩的文件路径

dir="D:\test"

#将“\”转化为“/”,不然会出错

dir=dir.replace("\\",'/')

dabao(dir)

    

          

posted @ 2017-05-06 13:01  琦琦爸爸  阅读(223)  评论(0编辑  收藏  举报