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. find命令高级参数

    find 命令参数大全  转自[https://www.cnblogs.com/yorkyang/p/6294894.html] Linux中find常见用法示例 ·find   path   -op ...

  2. 支付宝客户端架构解析:Android 容器化框架初探

    摘要: 本文将介绍支付宝 Android 容器化框架设计的基本思路. 1. 前言 由本章节开始,我们将从支付宝客户端的架构设计方案入手,细分拆解客户端在“容器化框架设计”.“网络优化”.“性能启动优化 ...

  3. 3分钟看完Java 8——史上最强Java 8新特性总结之第二篇 Stream API

    目录 · 概况 · 切片(Slicing) · 映射(Mapping) · 匹配(Matching) · 查找(Finding) · 归约(Reducing) · 排序(Sorting) · 数值流( ...

  4. tensorflow 1.12.0 gpu + python3.6.8 + win10 + GTX1060 + cuda9.0 + cudnn7.4 + vs2017)

    在安装tensorflow-gpu时,也看过不少的博客,讲得乱七八糟的,也不能这样说,只是每个人安装的环境或需求不一样,因此没有找到一个适合自己的教程去安装tensorflow-gpu版本.当然,入手 ...

  5. 工作中常用Windows快捷键整理(1)-快速关闭网页

    打开桌面 win+D,显示桌面快捷键,不会关闭浏览器页面,是显示桌面. 关闭当前打开的所有标签页 Alt+F4,关闭当前打开的所有浏览器标签页. 关闭当前打开的标签页 Ctrl+W,关闭当前打开的标签 ...

  6. [转]win10中安装JDK8以及环境配置

    本文转自:https://blog.csdn.net/yangsummer2426/article/details/80499775 1.      首先下载jdk,网址如下: http://www. ...

  7. 第一册:lesson ninety-five。

    原文: tickets,please. Two return tickets to London please. What time will the next train leave? At nin ...

  8. Url的Base64编码以及解码

    Base64可以将二进制转码成可见字符方便进行http传输,但是base64转码时会生成“+”,“/”,“=”这些被URL进行转码的特殊字符,导致两方面数据不一致.我们可以在发送前将“+”,“/”,“ ...

  9. 去重分页sql语句

    ---恢复内容开始--- SELECT [TAGNAME] FROM ( SELECT tagname,ROW_NUMBER() OVER(order by tagname) AS RowNumber ...

  10. LINUX sed grep awk之间比较整理

    正则表达式基础 在最简单的情况下,一个正则表达式看上去就是一个普通的查找串.例如,正则表达式"testing"中没有包含任何元字符,,它可以匹配"testing" ...