python学习之路-第三天-一个简单的脚本

现在有一个需求:把某个目录下的文件备份到指定到另外一个目录下,而且压缩后文件为zip文件

# -*- coding:utf-8 -*-
#! /usr/bin/python
# Filename:backup_v1.py

import os
import time

source = [r‘H:\StudyLib\lib‘]
# 源文件目录,是个列表,可以放入多个目录
target_dir = ‘I:\\backpacks\\‘
# 目标目录
target = target_dir + time.strftime(‘%Y%m%d%H%M%S‘) + ‘.zip‘
# 目标zip文件
zip_commend = "zip -qr %s %s" % (target, ‘ ‘.join(source))
# zip命令字符串
print zip_commend
#输出命令行测试
if os.system(zip_commend) == 0:
# 执行zip命令,若返回0,则说明正确备份
    print ‘Successful backup to ‘ ,target
else:
    print ‘backup failed‘

上面的注释写的挺详细的了,我们需要注意的由两点:

一个是windows不会自带zip压缩程序,需要我们自己下载,并把环境变量配置正确,

下载地址

另一个如果没有在头部声明编码的话会出现中文编码的问题,一定要写在第一行

这个版本其实只是把源文件和目标文件规定了一下,并没有任何优化操作

第一个优化:

可以在我们的目标目录中建立一级和二级目录,一级目录名称就为年月日,这样在每次做备份的时候,可以确保一天只建立一个文件夹(如果存在就不用创建新的文件夹了)

# -*- coding:utf-8 -*-
#! /usr/bin/python
# Filename:backup_v1.py

import os
import time

source = [r‘H:\StudyLib\lib‘]
# 源文件目录,是个列表,可以放入多个目录
target_dir = ‘I:\\backpacks\\‘
# 目标目录
today = target_dir + time.strftime(‘%Y%m%d‘)
# 目标文件夹的一级目录
now = time.strftime(‘%H%M%S‘)
# 目标文件夹的二级目录
if not os.path.exists(today):
    os.mkdir(today)
    print ‘Successful create directory‘,today
# 如果目录不存在则创建
target = today + os.sep + now + ‘.zip‘
# 目标文件
zip_commend = "zip -qr %s %s" % (target, ‘ ‘.join(source))
# zip命令字符串
print "执行命令:" +zip_commend
#输出命令行测试
if os.system(zip_commend) == 0:
# 执行zip命令,若返回0,则说明正确备份
    print ‘Successful backup to ‘ ,target
else:
    print ‘backup failed‘

最理想的创建这些归档的方法是分别使用zipfile和tarfile,因为是python标准库里面的方法,这次的学习里面的os.system方法就不推荐使用

时间: 2024-08-25 17:10:39

python学习之路-第三天-一个简单的脚本的相关文章

Python 学习之路(三)

Python 学习之路(三) 以下所用的是Python 3.6 一.集合部分 集合是一个无序的,不重复的数据集合,主要用来去重,以及关系测试:交集,差集,并集等 1.1 关系操作 1.1.1 列表去重 可以给列表去重,例如: 1 set_demo = [1,2,3,4,5,3,2,1] # 列表 2 set_demo = set(set_demo) # 转换成集合,来去重 3 print(set_demo) 1.1.2 取交集 intersection()方法 可以获得两个集合的交集部分,例如:

python学习之路(三)使用socketserver进行ftp断点续传

最近学习python到socketserver,本着想试一下水的深浅,采用Python3.6. 目录结构如下: receive_file和file为下载或上传文件存放目录,ftp_client为ftp客户端,ftp_server为server端. server端源码: #!/usr/bin/env python # -*- coding:utf-8 -*- import socketserver import os error_code = {'400':'FILE IS NOT EXISTS'

python学习之路——第三弹 (作业篇第一题)

作业一:编写登录接口1.输入用户名密码2.认证成功后显示欢迎信息3.输错三次后锁定. 所需知识点 文件基本读写操作,循环,列表,字典 上面的作业题是在学习完数据类型和简单的文件操作之后布置的,所以这个时间节点需要利用已有的知识完成. 作业一思路: 输入用户名密码----输入用raw_input--有个地方存储了用户名和密码,并且用户名密码一一对应--字典或者文件 输错三次后锁定--三次用循环--锁定用存储用户名的方式--列表,字典,文件 成功错误--判断 所以整体代码设计如下 : #/usr/b

python学习之路-第三天-函数

函数 函数的定义关键字:def 使用global语句可以清楚地表明变量是在外面的块定义的 示例:(函数运行完毕后x的值是2) #!/usr/bin/python # Filename: func_global.py def func(): global x print 'x is', x x = 2 print 'Changed local x to', x x = 50 func() print 'Value of x is', x 可以给形参加上默认值,默认参数是不可变的,而且只有在形参表末

Python学习之路 (三)爬虫(二)

通用爬虫和聚焦爬虫 根据使用场景,网络爬虫可分为 通用爬虫 和 聚焦爬虫 两种. 通用爬虫 通用网络爬虫 是 捜索引擎抓取系统(Baidu.Google.Yahoo等)的重要组成部分.主要目的是将互联网上的网页下载到本地,形成一个互联网内容的镜像备份. 通用搜索引擎(Search Engine)工作原理 通用网络爬虫 从互联网中搜集网页,采集信息,这些网页信息用于为搜索引擎建立索引从而提供支持,它决定着整个引擎系统的内容是否丰富,信息是否即时,因此其性能的优劣直接影响着搜索引擎的效果. 第一步:

我的python学习之路——前三天总结

1.基础入门1.1第一个Python代码 首先创建一个任意文件,结尾为py格式,然后在里面打入代码,在pycharm或者Python shell里面运行 print("钓鱼要钓刀鱼,刀鱼要到岛上钓") 1.2解释器编码 ascii,8位=1字节,一个英文字母是一个字节,py2的默认解释器编码就是ASCII码. Unicode,32位=4个字节,又叫万国码,一个字母或者汉字都是4个字节 utf-8,这是unicode的压缩版本,一个英文字母是一个字节,一个汉字是3个字节,py3的默认解释

Python学习之路(三):基础知识之运算符

1.while循环 1.1 while基本格式 while循环体格式为: while 循环条件: 循环体1 循环体2 1 count = 1 2 while count <= 10: # 循环条件的关键在于控制循环次数 3 if count != 7: 4 print(count) 5 count = count + 1 1.2 break 运用break能够在适当的条件下终止循环,即跳出当前循环,执行循环外下面的语句. 1 num = 1 2 while num < 3: 3 print(n

Python学习之路【第一篇】-Python简介和基础入门

1.Python简介 1.1 Python是什么 相信混迹IT界的很多朋友都知道,Python是近年来最火的一个热点,没有之一.从性质上来讲它和我们熟知的C.java.php等没有什么本质的区别,也是一种开发语言,而且已经进阶到主流的二十多种开发语言的top 5(数据源自最新的TIOBE排行榜). 来头不小啊!二十多种主流的开发语言,我该从哪一个开始呢?人生苦短,let‘s python! 1.2 Python的由来和发展趋势 Python的前世源自鼻祖“龟叔”.1989年,吉多·范罗苏姆(Gu

Python学习之路——强力推荐的Python学习资料

资料一:程序媛想事儿(Alexia)总结 Python是一种面向对象.直译式计算机程序设计语言.它的语法简捷和清晰,尽量使用无异义的英语单词,与其它大多数程序设计语言使用大括号不一样,它使用縮进来定义语句块.与Scheme.Ruby.Perl.Tcl等动态语言一样,Python具备垃圾回收功能,能够自动管理内存使用.它经常被当作脚本语言用于处理系统管理任务和网络程序编写,然而它也非常适合完成各种高级任务. Python上手虽然容易,但与其它任何语言一样要学好Python并非一日之功.我的Pyth