#!/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")
0928_网络运维-Python GUI
最新推荐文章于 2024-04-27 23:04:34 发布