• Python平时代码的一些知识


     

    os.walk的作用

    def file_name(file_dir):   
      for root, dirs, files in os.walk(file_dir):  
        print(root) #当前目录路径  
        print(dirs) #当前路径下所有子目录  
        print(files) #当前路径下所有非目录子文件 
    

    对日期操作

    获取当前日期:
    	date_name = datetime.datetime.now().strftime('%Y_%m_%d')
    日期的相加减:
    	date1 = '2018_9_10'
    	date2 = '2018_10_10'
    	d1 = datetime.datetime.strptime(date1, '%Y_%m_%d')
    	d2 = datetime.datetime.strptime(date2, '%Y_%m_%d')
    	delta = d2-d1
    	print delta.days
    结果:30

    对文件夹的压缩tar.gz格式:

      可参考:https://blog.csdn.net/jianhong1990/article/details/24713395

      以下所用到的一些知识点  

    1.os.walk的利用
    2.datetime模块的利用
    3.tarfile模块下的 add(),重点在于arcname参数的利用,
        arcname参数代表需要压缩的文件名   
    4.os.path.basename(source_dir) 获取文件路径下的最后一个名称

      

    需要压缩的文件目录结构 :

    --filename
        --file1
            --test1
        --test2
        --test3
    

      

     1.压缩文件夹,只能压缩文件夹下的文件

    压缩后的目录结构:
      --2018_9_10.tar.gz
        --test2
        --test3
    
    def tar_file(save_dir, uppack_dir):
      '''
      :param save_dir: 保存压缩文件的路径
      :param uppack_dir: 需要压缩文件的路径
      :param fname:获取当前时间命名压缩文件
      :return:
      '''
      fname = datetime.datetime.now().strftime('%Y_%m_%d')
      fname = save_dir + "/" + fname
      tar = tarfile.open(fname + ".tar.gz", "w:gz")
      for root, dir, files in os.walk(uppack_dir):
        for file in files:
          fullpath = os.path.join(root, file)
          tar.add(fullpath, arcname=file)
    

      

      2.压缩文件夹,一次性打包整个根目录,包括文件夹下的目录

    目录结构:
        --2018_9_10.tar.gz
         --filename
           --file1
             --test1
         --test2
             --test3
    def make_targz(save_dir, source_dir):
        '''
        :param save_dir: 保存压缩包的目录
        :param source_dir: 需要压缩文件夹的目录
        '''
        fname = datetime.datetime.now().strftime('%Y_%m_%d')
        fname = save_dir + "/" + fname
        with tarfile.open(fname + ".tar.gz", "w:gz") as tar:
            tar.add(source_dir, arcname=os.path.basename(source_dir))

      

      3.压缩文件夹,压缩文件下的所有内容

    目录结构:
      --2018_9_10.tar.gz
        --file1
          --test1
        --test2
        --test3
    def make_targz(save_dir, source_dir):
      '''
      :param save_dir: 保存压缩包的目录
      :param source_dir: 需要压缩文件夹的目录
      '''
      fname = datetime.datetime.now().strftime('%Y_%m_%d')
      fname = save_dir + "/" + fname
      with tarfile.open(fname + ".tar.gz", "w:gz") as tar:
        tar.add(source_dir, arcname="")

    对.tar.gz格式的压缩包解压:

    def untar(fname, fanme_dirs):
        '''
        :param fname: 压缩包的完整目录,包括压缩包名
        :param fanme_dirs: 压缩包路径
        :return: 
        '''
        t = tarfile.open(fname)
        t.extractall(path = fanme_dirs)

    正则中在查找的字段前或后添加新内容:

    方法一

    str = '123.jpg, 456.jpg, 789.jpg'
    b = re.sub('(?P<data>d+.jpg)',r'sdf\g<data>', str)
    print(b)
    
    结果:sdf123.jpg, sdf456.jpg, sdf789.jpg

    方法二

    def double(matched):
        value = matched.group('value')
        return str( 'sdd/' + value)
    s = '567'
    print(re.sub('(?P<value>d+)', double, s))  #1.在第二参数中,可以添加字符串或函数 2.?P<value>的意思就是命名一个名字为value的组,匹配规则符合后面的/d+
    
    结果:sdd/567

      

  • 相关阅读:
    Knockoutjs 实践入门 (2) 绑定事件
    HTTP If-Modified-Since引发的浏览器缓存汇总
    net.sf.json和 com.fasterxml.jackson中对象转json的区别
    JPA EntityManager详解
    Spring JPA中OneToOne和OneToMany用法
    Spring Data JPA中CrudRepository与JpaRepository的不同
    Git提交撤销
    Tomcat启动报StackOverflowError
    Git分支合并冲突解决(续)
    Git分支合并冲突解决
  • 原文地址:https://www.cnblogs.com/tang-s/p/9620248.html
Copyright © 2020-2023  润新知