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 -*- 标明编码注释 ...
随机推荐
- 高性能Mysql笔记 — explain
explain 查看sql的执行计划,只是一个近似结果,一般不会实际执行该sql,如果有子查询就会执行子查询 explain table_name,这儿的table_name含义较广:子查询.unio ...
- MYSQL事务隔离级别详解附加实验
参考: https://dev.mysql.com/doc/refman/5.7/en/set-transaction.html http://xm-king.iteye.com/blog/77072 ...
- win8 notepad++ 设置无法保存
前些天买了新笔记本.装的是win8 ,后来装了notepad++ ,最新版的,改了字体,下次从新打开之后,发现字体改动无效.后来试了一下“管理员身份运行”,再次打开,保存就有效.但总不能每次都那样去右 ...
- lsyncd —— 多机器实时同步文件神器
lsyncd 是一个支持实时.双向.多机器的多模式文件同步工具. 使用 Lua 语言封装了 inotify 和 rsync 工具,采用了 Linux 内核(2.6.13 及以后)里的 inotify ...
- 使用xmanager接收图形界面
假设在win(192.168.0.101)上安装了xmanager,想接收来自linux(192.168.100.16)的图形界面. 1.在win端打开Xmanager - Passive 2.在li ...
- Docker数据卷Volume实现文件共享、数据迁移备份(三)--技术流ken
前言 前面已经写了两篇关于docker的博文了,在工作中有关docker的基本操作已经基本讲解完了.相信现在大家已经能够熟练配置docker以及使用docker来创建镜像以及容器了.本篇博客将会讲解如 ...
- SpringBoot学习(四)-->SpringBoot快速入门,开山篇
Spring Boot简介 Spring Boot的目的在于创建和启动新的基于Spring框架的项目.Spring Boot会选择最适合的Spring子项目和第三方开源库进行整合.大部分Spring ...
- [转]centos7指定yum安装软件路径
本文转自:https://www.cnblogs.com/pyyu/p/9814062.html 网上的命令都是垃圾 yum -c /etc/yum.conf --installroot=/opt/a ...
- C#字节图片互转、字节转换图片、图片转换字节、byte[]转换图片、图片转换成byte[]
原文地址:http://www.cnblogs.com/wifi/articles/3522773.html /// <summary> /// 图片转换成字节流 /// </sum ...
- 洛谷P4725 【模板】多项式对数函数(多项式ln)
题意 题目链接 Sol 这个不用背XD 前置知识: \(f(x) = ln(x), f'(x) = \frac{1}{x}\) \(f(g(x)) = f'(g(x)) g'(x)\) 我们要求的是\ ...