简明python教程读书笔记(二)之为重要文件备份

简介:

一、可行性分析:

一般从经济、技术、社会、人四个方向分析。


二、需求分析:

需求分析就是需要实现哪些功能,这个很明了-文件备份

几个问题:

我们的备份位置?

什么时间备份?

备份哪些文件?

怎么样存储备份(文件类型)?

备份文件的名称?(需要通俗明了,一般是以当前时间命名)


三、实施过程:

方案一:

#!/usr/lib/env python

import os
import time
backlist=['/etc','/root']
to='/mnt/'

target=to+time.strftime('%Y%m%d%H%M%S')+'.tar.gz'

gz_command="tar -czf %s %s"%(target,' '.join(backlist))

if os.system(gz_command)==0:
        print 'successfull'
else:
        print 'failed'



改进方案二:

方案二主要是考虑到多建日期子目录,这样更加明了
today = target_dir + time.strftime('%Y%m%d')
now = time.strftime('%H%M%S')

if not os.path.exists(today):
os.mkdir(today) # make directory
print 'Successfully created directory', today

target = today + os.sep + now + '.zip'
zip_command = "zip -qr '%s' %s" % (target, ' '.join(source))


注意:os.sep代表/或者\



改进方案三:可以给备份文件名称加注解:

#!/usr/bin/env python

import os

import time

source=['/var/log','/etc/ssh']


target='/mnt/'


today=target+time.strftime('%Y%m%d')

now=time.strftime('%H%M%S')

comment=raw_input('pls input the comment-->')


if len(comment)==0:

        target1=today+os.sep+now+'.tar.gz'

else:

        target1=today+os.sep+now+'_'+comment.replace(' ','_')+'.tar.gz'

if not os.path.exists(today):

        os.mkdir(today)

comm="tar -czf %s %s"%(target1,' '.join(source))


if os.system(comm)==0:

        print 'successfull'

else:

        print 'failed'



方案四:增加交互性

最理想的创建这些归档的方法是分别使用zipfile和tarfile模块。它们是Python标准库的一部分,可以

供你使用。使用这些库就避免了使用os.system这个不推荐使用的函数。这个不推荐的原因今天问了下同事:

os.system是将内容传给c写的system函数,由对应系统处理,所以经常会遇到一些空格和引号的问题哈
而且c的system()本身就有一些限制,不更改,所以大家一般习惯于简单的可以用os.system,复杂的用subprocess.popen。


另外一方面可以通过交互式输入需要备份的目录然后用list的extend方法加到列表中去。这里我是直接把sys.argv列表的值全部赋值给一个空列表。

#!/usr/lib/env python
import sys
import os
import time
backlist=[]

backlist=sys.argv[1:]
if len(backlist)==0:
        backlist.append('/root')

to='/mnt/'

today=to+time.strftime('%Y%m%d')
now=time.strftime('%H%M%S')
if not os.path.exists(today):
        os.mkdir(today)
        print 'Successfully created directory', today
comment=raw_input('pls input the comment for your backup files-->')
if len(comment)==0:
        target=today+os.sep+now+'.tar.gz'
else:
        target=today+os.sep+now+'-'+comment.replace(' ','_')+'.tar.gz'

gz_command="tar -czf %s %s"%(target,' '.join(backlist))

if os.system(gz_command)==0:
        print 'successfull'
        print os.sep
else:
        print 'failed'

'














本文转自chenzudao51CTO博客,原文链接:http://blog.51cto.com/victor2016/1875945 ,如需转载请自行联系原作者


相关文章
|
10月前
|
数据可视化 Linux iOS开发
Python脚本转EXE文件实战指南:从原理到操作全解析
本教程详解如何将Python脚本打包为EXE文件,涵盖PyInstaller、auto-py-to-exe和cx_Freeze三种工具,包含实战案例与常见问题解决方案,助你轻松发布独立运行的Python程序。
2182 2
|
9月前
|
监控 机器人 编译器
如何将python代码打包成exe文件---PyInstaller打包之神
PyInstaller可将Python程序打包为独立可执行文件,无需用户安装Python环境。它自动分析代码依赖,整合解释器、库及资源,支持一键生成exe,方便分发。使用pip安装后,通过简单命令即可完成打包,适合各类项目部署。
1500 68
|
10月前
|
数据采集 存储 XML
Python爬虫技术:从基础到实战的完整教程
最后强调: 父母法律法规限制下进行网络抓取活动; 不得侵犯他人版权隐私利益; 同时也要注意个人安全防止泄露敏感信息.
1093 19
|
9月前
|
索引 Python
Python 列表切片赋值教程:掌握 “移花接木” 式列表修改技巧
本文通过生动的“嫁接”比喻,讲解Python列表切片赋值操作。切片可修改原列表内容,实现头部、尾部或中间元素替换,支持不等长赋值,灵活实现列表结构更新。
451 1
|
10月前
|
数据采集 存储 JSON
使用Python获取1688商品详情的教程
本教程介绍如何使用Python爬取1688商品详情信息,涵盖环境配置、代码编写、数据处理及合法合规注意事项,助你快速掌握商品数据抓取与保存技巧。
|
11月前
|
缓存 数据可视化 Linux
Python文件/目录比较实战:排除特定类型的实用技巧
本文通过四个实战案例,详解如何使用Python比较目录差异并灵活排除特定文件,涵盖基础比较、大文件处理、跨平台适配与可视化报告生成,助力开发者高效完成目录同步与数据校验任务。
333 0
|
11月前
|
并行计算 算法 Java
Python3解释器深度解析与实战教程:从源码到性能优化的全路径探索
Python解释器不止CPython,还包括PyPy、MicroPython、GraalVM等,各具特色,适用于不同场景。本文深入解析Python解释器的工作原理、内存管理机制、GIL限制及其优化策略,并介绍性能调优工具链及未来发展方向,助力开发者提升Python应用性能。
594 0
|
11月前
|
数据采集 索引 Python
Python Slice函数使用教程 - 详解与示例 | Python切片操作指南
Python中的`slice()`函数用于创建切片对象,以便对序列(如列表、字符串、元组)进行高效切片操作。它支持指定起始索引、结束索引和步长,提升代码可读性和灵活性。
|
12月前
|
安全 Linux 网络安全
Python极速搭建局域网文件共享服务器:一行命令实现HTTPS安全传输
本文介绍如何利用Python的http.server模块,通过一行命令快速搭建支持HTTPS的安全文件下载服务器,无需第三方工具,3分钟部署,保障局域网文件共享的隐私与安全。
2940 0
|
12月前
|
数据管理 开发工具 索引
在Python中借助Everything工具实现高效文件搜索的方法
使用上述方法,你就能在Python中利用Everything的强大搜索能力实现快速的文件搜索,这对于需要在大量文件中进行快速查找的场景尤其有用。此外,利用Python脚本可以灵活地将这一功能集成到更复杂的应用程序中,增强了自动化处理和数据管理的能力。
926 0

推荐镜像

更多