编写一个Python脚本——Windows下Python压缩文件
来源:互联网 发布:澳门网络博客有限公司 编辑:程序博客网 时间:2024/06/05 13:33
背景:最近学习Python,看到《简明Python教程》,第10章编写一个Python脚本
问题:为所有重要文件备份。
分析:1、需要备份的文件和目录由一个列表指定;2、备份应该保存在主备份目录中;3、文件备份成一个zip文件;4、zip存档的名称为当前的日期和时间;5、使用标准的zip命令。
代码:
# Filename: backup_ver1.pyimport osimport zipfileimport timesource = (r'F:\pythonCode\lesson2')target_path = 'F:\\pythonCode\\lesson\\'today = target_path + time.strftime('%Y%m%d')now = time.strftime('%H%M%S')# print nowif not os.path.exists(today): os.mkdir(today) print 'Sucessfully created directory',today zipName = today + os.sep + now + '.zip'# print zipNamef = zipfile.ZipFile( zipName, 'w', zipfile.ZIP_DEFLATED )for dirpath, dirnames, filenames in os.walk(source): for filename in filenames: print filename f.write(os.path.join( source, filename)) # print 1f.close
代码分析:本程序中需要引用os、zipfile、time模块,其中zipfile用来创建和读取zip文件,time用来获取当前的时间。
1、zipfile使用用例
z = zipfile.ZipFile(filename, 'r',ZIP_DEFLATED)#这里第二个参数用r表示读取zip文件,w表示创建一个zip文件for f in z.namelist(): print f
解:此代码用于读取一个zip压缩包里所有文件的名字,filename为文件路径2、os.walk解读
os.walk(top, topdown = True, onerror = None, followlinks = False)
其中top:所要遍历的目录地址;
topdown:为真,优先遍历top目录;为假,优先遍历子目录;
os.walk()返回值是一个生成器(generator),返回一个三元组(root,dirs,files),每次循环都更新;
其中
root:指当前遍历的这个文件夹的本身地址;
dirs:是一个list,内容为该文件夹下的所有目录(子目录),也是文件夹;
files:一个list,内容是该文件夹下的所有文件。
下面借用一个例子说明,转自http://www.jianshu.com/p/bbad16822eab
文件结构如下:
a -> b -> 1.txt, 2.txt c -> 3.txt d -> 4.txt 5.txt
for (root, dirs, files) in os.walk('a'): #第一次运行时,当前遍历目录为 a 所以 root == 'a' dirs == [ 'b', 'c', 'd'] files == [ '4.txt', '5.txt'] 。。。 # 接着遍历 dirs 中的每一个目录 b: root = 'a\\b' dirs = [] files = [ '1.txt', '2.txt'] # dirs为空,返回 # 遍历c c: root = 'a\\c' dirs = [] files = [ '3.txt' ] PS : 如果想获取文件的全路径,只需要 for f in files: path = os.path.join(root,f) # 遍历d d: root = 'a\\b' dirs = [] files = [] 遍历完毕,退出循环至此可以解读上面Python程序
阅读全文
0 0
- 编写一个Python脚本——Windows下Python压缩文件
- unix/windows下编写一个python脚本(文件备份)--python学习(4)
- python windows rar 压缩文件
- 使用python在windows 下 编写 自动备份脚本
- Windows环境下python备份脚本编写(二)
- PYTHON教程中“编写一个Python脚本”版本一的windows版本
- 用python写一个windows下的定时关机脚本
- 第十章 解决问题--编写一个python脚本
- byteofpython_chn/ch10s02:编写一个Python脚本
- 【A ByteOf Python2.7】第10章 解决问题——编写一个Python脚本
- 解压文件夹中的压缩文件 Python脚本
- 自动解压大量压缩文件 Python 脚本
- Python 压缩文件
- python 压缩文件
- Python压缩文件
- Python脚本 —Windows下文件备份
- python脚本编写
- python setup脚本编写
- 获取当前句柄的4种方法
- java 线程间的状态转换
- Python格式化输出
- [python]俄罗斯方块(二)
- OpenVPN成功连接了但不能访问任何网站
- 编写一个Python脚本——Windows下Python压缩文件
- bzoj 4627: [BeiJing2016]回转寿司 线段树
- JavaScript中8个常见的陷阱
- 第一次博客
- Codeblocks上dll的创建和使用
- 【转】JSP连接数据库的两种方式:Jdbc-Odbc桥和Jdbc直连
- Unity 游戏框架搭建 (七) 减少加班利器-QApp类
- Unity 游戏框架搭建 (八) 减少加班利器-QLog
- ROS-I工业机器人培训课程资料 2017-06-30