美文网首页
python小例子-文件备份

python小例子-文件备份

作者: 巴巴11 | 来源:发表于2020-04-14 23:23 被阅读0次

    地址:
    https://www.shiyanlou.com/courses/302/learning/?id=940

    目标:
    将一个文件的内容压缩后放到另外一个文件夹里。

    初始代码:

    #!/usr/bin/env python3
    # -*- coding: utf-8 -*-
    
    import os
    import time
    
    source = ["/home/shiyanlou/Code/"]
    target_dir = "/home/shiyanlou/Desktop/"
    
    target = target_dir + time.strftime('%Y%m%d%H%M%S') + '.zip'
    
    zip_command = "zip -qr %s %s" %(target, ' '.join(source))
    
    if os.system(zip_command) == 0:
        print("Successful backup")
    else :
        print("Backup Failed")
    

    改进1:

    #!/usr/bin/env python3
    # -*- coding: utf-8 -*- 
    
    import os
    import time
    #基本变量
    source = ["/home/shiyanlou/Code/"]
    target_dir = "/home/shiyanlou/Desktop/"
    
    today_dir = target_dir + time.strftime('%Y%m%d')
    time_dir = time.strftime("%H%M%S")
    
    touch = today_dir + os.sep + time_dir + '.zip'
    command_touch = "zip -qr " + touch +' '+ ' '.join(source)
    
    #逻辑思路判断
    if os.path.exists(today_dir)==0:
        os.mkdir(today_dir)
    if os.system(command_touch)==0:
        print("Success backup Up")
    else:
        print("Failed backup")
    

    引入图形界面:

    #!/usr/bin/env python3
    #-*- coding:utf-8 -*- 
    
    #导入模块
    import tkinter
    import os
    import time
    
    #定义函数,这里才是精髓所在
    def backup():
        global entry_source
        global entry_target
        source = entry_source.get()
        target_dir = entry_target.get()
    
        today_dir = target_dir + time.strftime('%Y%m%d')
        time_dir = time.strftime("%H%M%S")
    
        touch = today_dir + os.sep + time_dir + '.zip'
        command_touch = "zip -qr " + touch +' '+ source
    
        print(command_touch)
        print(source)
        print(target_dir)
        if os.path.exists(today_dir)==0:
            os.mkdir(today_dir)
        if os.system(command_touch)==0:
            print("Success backup Up")
        else:
            print("Failed backup")
    
    #从这里开始呢,则是开始界面的编写及布局
    root = tkinter.Tk()
    root.title('BackUp')
    root.geometry("200x200")
    #第一行的两个控件
    lbl_source = tkinter.Label(root, text='Source')
    lbl_source.grid(row=0, column=0)
    entry_source = tkinter.Entry(root)
    entry_source.grid(row=0,column=1)
    #第二行的两个控件
    lbl_target = tkinter.Label(root, text='Target')
    lbl_target.grid(row=1, column=0)
    entry_target = tkinter.Entry(root)
    entry_target.grid(row=1,column=1)
    #第三行的一个按钮控件
    but_back = tkinter.Button(root,text='BackUp')
    but_back.grid(row=3, column=0)
    but_back["command"] = backup
    #界面的开始
    root.mainloop()
    

    模块os

    • os.sep
      Linux/mac '/'
      window ''
    • os.path.exists(path) : 检查指定路径的文件或文件夹是否存在, False == 0 True != 0
    • os.system(command) : 运行command命令,成功返回0,否则返回错误号

    设置文件或者文件夹的权限
    $ sudo chmod 777 文件夹1 [文件夹2 ...]

    zip命令
    -q : 表示zip命令安静工作
    -r : 对目录递归操作

    time模块:
    %Y 四位年份
    %m 显示01-12中的一个
    %d 表示为%m月的某一天
    %H 24小时制
    %M 分钟
    %S 秒

    ' '.join(source) : 将列表转为字符串
    sou = ['a', 'b', 'c'] s = '%'.join(sou)
    a%b%c

    tkinter模块,调用Tcl/Tk的接口,跨平台的脚本图形界面接口。性能不好。
    安装tk:
    sudo apt-get update sudo apt-get install python3-tk

    pygame模块

    相关文章

      网友评论

          本文标题:python小例子-文件备份

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