您的位置:首页 > 理论基础 > 计算机网络

0928_网络运维-Python GUI

2015-09-29 13:38 495 查看
#!/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")
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python gui