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) 结果:sdf\.jpg, sdf\.jpg, sdf\.jpg

方法二

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

  

Python平时代码的一些知识的更多相关文章

  1. 盘点 Python 中的那些冷知识(二)

    上一篇文章分享了 Python中的那些冷知识,地址在这里 盘点 Python 中的那些冷知识(一) 今天将接着分享!! 06. 默认参数最好不为可变对象 函数的参数分三种 可变参数 默认参数 关键字参 ...

  2. python 示例代码1

    第一章 python基础一 ​在此不再赘述为什么学习python这门编程,网上搜索一箩筐.我在此仅说一句python的好,用了你就会爱上它. 本python示例代码1000+带你由浅入深的了解pyth ...

  3. Java 代码的基本知识(摘)

    (摘自:Java经典入门教程) http://wenku.baidu.com/link?url=IoWI58cD5vzeHN-NL4pN7Gren-RfzydrhjDlETAByC9L-9ANinyL ...

  4. Python一行代码

    1:Python一行代码画出爱心 print]+(y*-)**-(x**(y*<= ,)]),-,-)]) 2:终端路径切换到某文件夹下,键入: python -m SimpleHTTPServ ...

  5. python爬虫代码

    原创python爬虫代码 主要用到urllib2.BeautifulSoup模块 #encoding=utf-8 import re import requests import urllib2 im ...

  6. Python小代码_2_格式化输出

    Python小代码_2_格式化输出 name = input("name:") age = input("age:") job = input("jo ...

  7. Python小代码_1_九九乘法表

    Python小代码_1_九九乘法表 max_num = 9 row = 1 while row <= max_num: col = 1 while col <= row: print(st ...

  8. Python IDLE 代码高亮主题

    Python IDLE 代码高亮主题 使用方法: 打开C盘我的 C:\Documents and Settings\你的用户名.idlerc文件夹 里面会有一个 config-highlight.cf ...

  9. Python学习第二节——基础知识

    # !/usr/bin/edv python    脚本语言的第一行,目的就是指出,你想要你的这个文件中的代码用什么可执行程序去运行它.# -*- coding:UTF-8 -*-    标明编码注释 ...

随机推荐

  1. 项目实战3—实现基于Keepalived+LVS的高可用集群网站架构

    实现基于Keepalived高可用集群网站架构 环境:随着业务的发展,网站的访问量越来越大,网站访问量已经从原来的1000QPS,变为3000QPS,目前业务已经通过集群LVS架构可做到随时拓展,后端 ...

  2. Appcan开发笔记:导出Excel文件

    Appcan IDE为4.0+; appcan提供了导出文件的方法 appcan.file.write 文件会自动创建,要解决的事情是Excel用字符串输出,可以考虑 csv(逗号间隔).HTML.X ...

  3. Java设计模式之《构建者模式》及应用场景

    原创作品,可以转载,但是请标注出处地址:http://www.cnblogs.com/V1haoge/p/6553374.html 构建者模式,又称建造者模式,将一部负责对象的构建分为许多小对象的构建 ...

  4. python字典类型

    字典类型简介 字典(dict)是存储key/value数据的容器,也就是所谓的map.hash.关联数组.无论是什么称呼,都是键值对存储的方式. 在python中,dict类型使用大括号包围: D = ...

  5. 翻译:DECLARE Variable(已提交到MariaDB官方手册)

    本文为mariadb官方手册:DECLARE Variable的译文. 原文:https://mariadb.com/kb/en/library/declare-variable/我提交到MariaD ...

  6. [转]angular 禁止缓存

    本文转自:https://www.cnblogs.com/jonney-wang/p/9797906.html angular 单页面开发,会存在和管理很多HTML和JS文件,缓存有时是个麻烦. 在开 ...

  7. 浅谈Token理解运用

    周末没带电脑,闲着也是闲着,出来分享一点东西,也当自己学习和巩固了. 今天分享一下Token的理解,首先Token的定义是什么? 概念 Token被翻译成为('令牌','标记')在计算机中的含义也差不 ...

  8. struts2_模型驱动

    一.注意点 建立实现ModelDriven接口的action类 在该action类中,创建实体对象并new 在getModel返回该对象 在显示页面中提交的表单name正常写 二.案例 创建实体类Us ...

  9. Java学习笔记之——构造方法

    构造方法:方法名和类名相同且没有返回值 1.作用 创建对象 对象初始化 2.普通方法的结构 权限修饰符 返回值类型 方法名(形参){ 方法体: } 3. 构造方法的结构 (1)结构 权限修饰符 方法名 ...

  10. Hibernate入门(十一)多对多案例

    Hibernate多对多案例 1.用户对角色 DROP TABLE IF EXISTS emp_role; DROP TABLE IF EXISTS employee; DROP TABLE IF E ...