美文网首页
Python学习第六天——《A Byte of Python》笔

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

作者: 蓝色公爵 | 来源:发表于2018-03-24 19:24 被阅读0次

    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》笔

          本文链接:https://www.haomeiwen.com/subject/bnoxcftx.html