Python学习第六天——《A Byte of Python》笔记 6

Software is grown,not built.

bill de hÓra


学习完基础,按照进度今天应该是做一个自动备份的编程,但是这两天边上没电脑,只能手机先摘记。虽然没有在电脑上用markdown方便,但了胜于无。

主题:对所有重要文件(如coding)做备份

写软件,总结有以下这些阶段:

1.What(Analysis分析)
2.How(Design设计)
3.Do it(Implementation实施)
4.Test(Testing or Debugging测试)
5.Use(Operation or Deployment使用)
6.Maintain(Refinement改善)

书中也是因此,特意用了四个vision来阐述,由粗到精,一步一步围绕主题在不同阶段分析怎么去编程去改善。

分析:

  • 文件和目录备份在一个数列中;
  • 备份必须储存在一个主备份目录下;
  • 文件要打包成一个zip文件;
  • zip档案用当前日期和时间来命名;
  • 用标准的zip命令,Linux和Unix下默认可利用。(Windows用户要从GnuWin32 project page下载安装zip命令,并将C:\Program Files\GnuWin32\bin添加到系统路径环境变量中。

解决:

First version

import os
import time
#1.The files and directories to be backed up #are specified in a list.
source=['''C:\\My Documents''']
#Wo have to use double quotes inside a #string for names with space in it.Wo could #have also used a raw [r'C:\My Documents'].
#2.The backup must be stored in a main backup directory.
taget_dir='E:\\backup'
#3. The files are backed up into a zip file.
#4. The name of the zip archive is the current date and time
taget=taget_dir+os.sep+\time.strftime('%Y%m%d%H%m%S')+'.zip'
#Create target directory if it is not present
if not os.path.exists(target_dir):
     os.mkdir(target_dir)
#5. We use the zip command to put the files in a zip archive
zip_command='zip -r{0}{1}'.format(target,''.jion(source))
# Run the buckup
print('Zip command is:')
print(zip_command)
print('Running:')
if os.system(zip_command)==():
      print('Successful backup to',target)
else:
     print('Backup FAILED')

Second version

make some refinement
一个更好的文件命名——在主备份目录下,用当前日期创建目录,里面文件用时间来命名

  • 优点1.备份显得有层次,因而更容易管理
  • 优点2.文件名更短
  • 优点3.分开的目录有助于检查是否每天都备份了,看下有没有当天目录就明了

Third Version&Forth Version

有时需要将较大的变更也添加到备份的文件名中,这样更加一目了然。
第三和第四版本是解决同一设想,但是前者有个bug,需要我们把它找出来。


简单一记,手机写还是有点不习惯。

最后附一个斐波那契数列,第一、二数为0,1,之后的数为前面两者之和。。
Python简便,几句就解决:

def fibs(num):
    result=[0,1]
    for i in range(num-2):
        result.append(result[-2]+result[-1])
    return result

你可能感兴趣的:(Python学习第六天——《A Byte of Python》笔记 6)