Python学习第六天——《A|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,需要我们把它找出来。
【Python学习第六天——《A|Python学习第六天——《A Byte of Python》笔记 6】简单一记,手机写还是有点不习惯。
最后附一个斐波那契数列,第一、二数为0,1,之后的数为前面两者之和。。
Python简便,几句就解决:
def fibs(num): result=[0,1] for i in range(num-2): result.append(result[-2]+result[-1]) return result

    推荐阅读