python备份文件(简易)

步骤逻辑

要备份的文件夹:source = ["/opt/containerd"]

 

保存备份信息的文件夹 targz_dir = "/home/backup"

 

文件夹名(以当天日期为) day_dir = targz_dir +time.strftime('%Y%m%d')

 

文件名(当时时间为)  filename = time.strftime('%H%M%S')

 

检查文件夹是否存在 os.path.exist(day_dir)

 

文件夹路径 需要压缩 zip_dir = day_dir + os.sep +filename +'.zip'    # os.sep  兼容Windows平台斜杠 os.sep = '\\'

 

文件压缩命令  command_shell = "zip -qr" +"zip_dir" + ' '.jion(source)

代码实现

 

复制代码
source = ["/home/yjc/linux"]
targz_dir = "hoem/backup"
day_dir = targz_dir +time.strftime('%Y%m%d')
filename = time.strftime('%H%M%S')
zip_dir = day_dir +os.sep + filename +'.zip'
command_shell= "zip -qr" + zip_dir + ''+' '.join(source) 

if not  os.path.exists(day_dir):    # 判断备份目录是否存在,如果不存在则创建
    os.mkdir(day_dir)
if os.system(command_shell) == 0:
    print("备份成功")
else:
    print("备份失败")
复制代码

 

简易图形界面

复制代码
def bakcup():
    global entry_source
    global entry_tagz_dir
    source= entry_source.get()
    targz_dir=entry_tagz_dir.get()
    day_dir = targz_dir +time.strftime('%Y%m%d')
    filename = time.strftime('%H%M%S')
    zip_dir = day_dir +os.sep + filename +'.zip'
    command_shell= "zip -qr" + zip_dir + ''+' '.join(source)

    if not  os.path.exists(day_dir):    # 判断备份目录是否存在,如果不存在则创建
        os.mkdir(day_dir)
    if os.system(command_shell) == 0:
        print("备份成功")
    else:
        print("备份失败")
#编写界面布局
root = tkinter.Tk()
root.title('Backup')
root.geometry("2000x2000")

#第一行的两个控件

dir_source = tkinter.Label(root,text='Source')
dir_source.grid(row=0,column=0)
entry_source = tkinter.Entry(root)
entry_source.grid(row=0,column=1)

# 第二行控件
target_dir = tkinter.Label(root,text='Target')
target_dir.grid(row=1,column=0)
entry_tagz_dir=tkinter.Entry(root)
entry_tagz_dir.grid(row=1,column=1)

#第三行控件
bak=tkinter.Button(root,text='Backup')
bak.grid(row=3,column=0)
bak["command"] = bakcup

#界面开始
root.mainloop()
复制代码

 

posted @   请别对我太好  阅读(1587)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端
点击右上角即可分享
微信分享提示