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) 结果: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平时代码的一些知识的更多相关文章
- 盘点 Python 中的那些冷知识(二)
上一篇文章分享了 Python中的那些冷知识,地址在这里 盘点 Python 中的那些冷知识(一) 今天将接着分享!! 06. 默认参数最好不为可变对象 函数的参数分三种 可变参数 默认参数 关键字参 ...
- python 示例代码1
第一章 python基础一 在此不再赘述为什么学习python这门编程,网上搜索一箩筐.我在此仅说一句python的好,用了你就会爱上它. 本python示例代码1000+带你由浅入深的了解pyth ...
- Java 代码的基本知识(摘)
(摘自:Java经典入门教程) http://wenku.baidu.com/link?url=IoWI58cD5vzeHN-NL4pN7Gren-RfzydrhjDlETAByC9L-9ANinyL ...
- Python一行代码
1:Python一行代码画出爱心 print]+(y*-)**-(x**(y*<= ,)]),-,-)]) 2:终端路径切换到某文件夹下,键入: python -m SimpleHTTPServ ...
- python爬虫代码
原创python爬虫代码 主要用到urllib2.BeautifulSoup模块 #encoding=utf-8 import re import requests import urllib2 im ...
- Python小代码_2_格式化输出
Python小代码_2_格式化输出 name = input("name:") age = input("age:") job = input("jo ...
- Python小代码_1_九九乘法表
Python小代码_1_九九乘法表 max_num = 9 row = 1 while row <= max_num: col = 1 while col <= row: print(st ...
- Python IDLE 代码高亮主题
Python IDLE 代码高亮主题 使用方法: 打开C盘我的 C:\Documents and Settings\你的用户名.idlerc文件夹 里面会有一个 config-highlight.cf ...
- Python学习第二节——基础知识
# !/usr/bin/edv python 脚本语言的第一行,目的就是指出,你想要你的这个文件中的代码用什么可执行程序去运行它.# -*- coding:UTF-8 -*- 标明编码注释 ...
随机推荐
- DHCP服务器的搭建
dhcp笔记整理:http://services.linuxpanda.tech/DHCP/index.html 1 dhcp简介 DHCP原理 动态主机配置协议(Dynamic Host Confi ...
- shiro源码篇 - shiro的filter,你值得拥有
前言 开心一刻 已经报废了一年多的电脑,今天特么突然开机了,吓老子一跳,只见电脑管家缓缓地出来了,本次开机一共用时一年零六个月,打败了全国0%的电脑,电脑管家已经对您的电脑失去信心,然后它把自己卸载了 ...
- tp3.2多个或者并且语句语法
$map['tid1&cid1'] =array($jmid,'0','_multi'=>true); $map['tid2&cid2'] =array($jmid,'0','_ ...
- Java线程实现与安全
目录 1. 线程的实现 线程的三种实现方式 Java线程的实现与调度 2. 线程安全 Java的五种共享数据 保证线程安全的三种方式 前言 本篇博文主要是是在Java内存模型的基础上介绍Java线程更 ...
- AngularJS_自定义控件_笔记1
简介: 本篇博客是在学习AngularJS自定义控件的学习记录,作为一个学习示例... A-基本架构介绍 新建一个AngularJs的项目,大概项目结构如下: 项目结构: 大概是由:app.js,bo ...
- 【转载】C#工具类:Json操作帮助类
Json序列化和反序列化在程序开发中时常会遇到,在C#中可以使用很多种方法实现对数据的Json序列化和反序列化,封装一个Json操作工具类来简化相应的操作,该工具类中包含以下功能:对象转JSON.数据 ...
- Android Studio RecyclerView用法
首先创建一个布局 里面放一个文本 <TextView android:id="@+id/textView" android:layout_width="60dp&q ...
- element UI Cascader 级联选择器 编辑 修改 数组 路径 问题(转载)
来源:https://segmentfault.com/a/1190000014827485 element UI的Cascader级联选择器编辑时 vue.js element-ui 2 eleme ...
- 使用 hashMap和treeMap开启多个摄像头的监控任务
背景:今天有个需求,传入多个摄像头ID,然后调用接口,开启这些摄像头的监控任务. 方法一: 如果你的摄像头监控任务格式为: {camera_id_list=[{createBy=tjt, camera ...
- 【Java每日一题】20170206
20170120问题解析请点击今日问题下方的“[Java每日一题]20170206”查看(问题解析在公众号首发,公众号ID:weknow619) package Feb2017; public cla ...