0928_网络运维-Python GUI

#!/usr/bin/python
# -*- coding:utf-8 -*-

import tkFileDialog, Tkinter, tkMessageBox

import py_compile

# 兼容ascii和utf-8
import sys
reload(sys)
sys.setdefaultencoding('utf8')

def gui():
    
    # 文件目录
    def filedir():
        filedire = tkFileDialog.askdirectory()
        if filedire == '':
            textdir.set('')
        else:
            textdir.set(filedire)

    # Config文件
    def filenam():
        filename = tkFileDialog.askopenfilename()
        if filename == '':
            textfile.set('')
        else:
            textfile.set(filename)

    # 信息确认
    def panduan():
        if textdir.get() == '':
            tkMessageBox.showinfo("Info", "文件目录不能为空")
            return
        elif textfile.get() == '':
            tkMessageBox.showinfo("Info", "Config文件不能为空")
            return
        else:
            test.destroy()
            
    # 主窗口
    test = Tkinter.Tk()
    test.geometry('400x180')
    test.title('生成脚本文件')

    # host信息录入系统
    label = Tkinter.Label(test, text = "选择包含host信息的文件:")
    label.pack()
    
    textfile = Tkinter.StringVar()
    textfile.set("")
    entryfile = Tkinter.Entry(test, textvariable = textfile)
    entryfile.pack()
    
    buttonfile = Tkinter.Button(test, text = "选择Config文件", command = filenam)
    buttonfile.pack()

    # 日常config保存路径
    label = Tkinter.Label(test, text = "每日配置自动备份到如下目录:")
    label.pack()
    
    textdir = Tkinter.StringVar()
    textdir.set("C:/Config")
    entrydir = Tkinter.Entry(test, textvariable = textdir)
    entrydir.pack()
    
    buttondir = Tkinter.Button(test, text = "打开文件目录", command = filedir)
    buttondir.pack()

    # 检查确认录入信息
    Confirmbutton = Tkinter.Button(test, text = "确认", command = panduan)
    Confirmbutton.pack()
    test.mainloop()
    return (textdir.get(), textfile.get())

    
if __name__ == '__main__':
    
    # gui得到保存的路径和需要的配置信息文件
    (dirname, filename) = gui()

    # 导出最终py文件
    
    # readline: config.txt
    # writeline: [new].py
    # mainfile: main.txt
    readfile = open(filename, 'r')
    mainfile = open("main.txt", 'r')
    writefile = open(filename + "_config.py", 'w')
    writefile.write('''#!/usr/bin/python
# -*- coding:utf-8 -*-

import paramiko
import os,sys,time
import re
''')
    writefile.write("dirname = \"" + dirname + '\"\n')
    writefile.write("device = []\n")
    for line in readfile:
        if not line.strip() == '':
            writefile.write("device.append(\"" + line.strip('\n') + "\")\n")

    for line in mainfile:
        writefile.write(line)
        
    readfile.close()
    mainfile.close()
    writefile.close()

    # 显示成功
    test = Tkinter.Tk()
    test.geometry("0x0")
    tkMessageBox.showinfo("Info", "生成文件保存成" + filename + "_config.pyc")
    test.destroy()
    py_compile.compile(filename + "_config.py")
    
    # 删不掉【debug】
    # if os.path.exists(filename + "_config.py"):
    # os.remove(filename + "_config.py")



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值