zoukankan      html  css  js  c++  java
  • 未完待续:上传服务器gui界面

    背景:同事需要,未进行代码类的编写 ,集成日志功能,获取电脑本地账户,GUI界面,压缩文件夹的功能  
    from tkinter import *
    from tkinter.filedialog import askdirectory
    import zipfile
    import os
    from datetime import datetime
    import getpass
    import logging

    user = getpass.getuser()


    tk=Tk()
    tk.title("小工具")
    var=IntVar()
    path1 = StringVar()
    default = StringVar()
    default.set('请输入创建的文件夹名称')
    username = StringVar()
    username.set('请确认用户:'+user)


    def OpenFile():
    path_ = askdirectory()
    path1.set(path_)


    def client_exit():
    exit()

    def Setfile():
    startdir = path1.get() #如此获取内容,更正
    file_news = datetime.now().strftime("%Y-%m-%d_%H_%M_%S")+'.zip' # 压缩后文件夹的名字
    z = zipfile.ZipFile(file_news,'w',zipfile.ZIP_DEFLATED) #参数一:文件夹名
    for dirpath, dirnames, filenames in os.walk(startdir):
    fpath = dirpath.replace(startdir,'') #这一句很重要,不replace的话,就从根目录开始复制
    fpath = fpath and fpath + os.sep or ''#这句话理解我也点郁闷,实现当前文件夹以及包含的所有文件的压缩
    for filename in filenames:
    try:
    z.write(os.path.join(dirpath, filename),fpath+filename)
    print ('压缩成功')
    except Exception as e:
    print('e')
    logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s',
    datefmt='%a, %d %b %Y %H:%M:%S',filename="test.log",filemode='a')
    logging.debug("User %s is loging" % user)
    z.close()



    menubar = Menu(tk)
    filemenu = Menu(menubar)
    menubar.add_command(label='选择文件', command= OpenFile)
    menubar.add_command(label='压缩文件', command= Setfile)
    menubar.add_command(label='退出', command= client_exit)

    tk['menu'] = menubar


    #标签控件,显示文本和位图,展示在第一行
    Label(tk,text="上传者").grid(row=0,sticky=E)#靠右
    Label(tk,text="本地目录").grid(row=1,sticky=W)#第二行,靠左
    Label(tk,text="目标目录").grid(row=2,sticky=W)

    #输入控件
    Entry(tk,textvariable = username).grid(row=0,column=1,padx=10,pady=10)
    Entry(tk,textvariable = path1).grid(row=1,column=1)
    Entry(tk,textvariable = default).grid(row=2,column=1)

    #多选框插件
    button=Checkbutton(tk,text="请谨慎使用",variable=var)
    button.grid(row=3,columnspan=2,sticky=W)

    #插入图片
    photo=PhotoImage(file="python.png")
    label=Label(image=photo)
    label.grid(row=0,column=2,rowspan=2,columnspan=2,
    sticky=W+E+N+S, padx=5, pady=5)#合并两行,两列,居中,四周外延5个长度

    #按钮控件
    button1=Button(tk,text="上传文件")
    button1.grid(row=3,column=2,sticky=E)
    button2=Button(tk,text="下载文件")
    button2.grid(row=3,column=3,sticky=E)


    #主事件循环
    mainloop()
  • 相关阅读:
    Nuget:aliyun-openapi-sdk
    iptables简述
    openOffice安装
    bash:command not found
    linux nc命令
    linux命令帮助
    linux用户管理
    LDAP 后缀操作
    LDAP缓存命令
    LDAP索引及缓存优化
  • 原文地址:https://www.cnblogs.com/wudeng/p/9356798.html
Copyright © 2011-2022 走看看