# -*- coding: utf-8 -*-
import tkinter as tk
import os
import sys
import configparser
from tkinter import messagebox
from tkinter import filedialog
from docx import Document
class Window:
def __init__(self,handle):
self.win = handle
self.createwindow()
self.run()
def createwindow(self):
self.win.geometry('600x200')
#eleasenoe 1
self.releasenote_text = tk.StringVar()
self.releasenote_text.set("ReleaseNote")
self.releasenote = tk.Label(self.win,
textvariable=self.releasenote_text,
font=('Arial',11),width=15,height=2)
self.releasenote.grid(row=0, sticky= tk.W)
#label 2
self.ro_text = tk.StringVar()
self.ro_entry = tk.Entry(self.win,textvariable=self.ro_text,width=30)
self.ro_entry.grid(row=0,column=1,sticky=tk.E)
#button
self.button =tk.Button(self.win,text="选择ReleaseNote文件",width=20,height=2,command=self.select_releasenote)
self.button.grid(row=0,column=2,sticky=tk.E)
#label 1
self.ini_text = tk.StringVar()
self.ini_text.set("INI文件")
self.ini = tk.Label(self.win,
textvariable=self.ini_text,
font=('Arial',11),width=15,height=2)
self.ini.grid(row=1, sticky= tk.W)
#label 2
self.ini_text = tk.StringVar()
self.ini_entry = tk.Entry(self.win,textvariable=self.ini_text,width=30)
self.ini_entry.grid(row=1,column=1,sticky=tk.E)
#button
self.button =tk.Button(self.win,text="选择INI文件",width=20,height=2,command=self.select_ini)
self.button.grid(row=1,column=2,sticky=tk.E)
#button
self.button =tk.Button(self.win,text="校验并重写",width=20,height=2,command=self.check_and_rewrite)
self.button.grid(row=2,column=1,sticky=tk.E)
#label 1
self.owner_text = tk.StringVar()
self.owner_text.set("作者:韩萌")
self.owner = tk.Label(self.win,
textvariable=self.owner_text,
font=('Arial',11),width=15,height=2)
self.owner.grid(row=3,column=2,sticky=tk.E)
def select_releasenote(self):
filename = tk.filedialog.askopenfilename()
if filename != '':
self.ro_text.set(filename)
print ("您选择的文件是:" + filename)
else:
messagebox.showinfo("Warning","您没有选择任何ReleaseNote文件")
def select_ini(self):
filename = tk.filedialog.askopenfilename()
if filename != '':
self.ini_text.set(filename)
print ("您选择的文件是:" + filename)
else:
messagebox.showinfo("Warning","您没有选择任何INI文件")
def check_and_rewrite(self):
releasenote = self.ro_entry.get()
ini = self.ini_entry.get()
print(releasenote)
print(ini)
Android = ''
Modem = ''
NV = ''
if ini != '':
conf=configparser.ConfigParser()
conf.read(ini)
Android=conf.get('Version',"Android")
Modem=conf.get('Version',"Modem")
NV=conf.get('Version',"NV")
print(Android)
print(Modem)
print(NV)
else:
messagebox.showinfo("Error",'没有选择INI文件')
self.ini_text.set("您没有选择任何INI文件")
sys.exit(-1)
if releasenote != '':
doc = Document(releasenote)
#for paragraph in doc.paragraphs:
# print(paragraph.text) #打印各段落内容文本
tbs = doc.tables
table = tbs[1]
for i in range(2,3):
result = table.cell(i,1).text
#print(result)
list=result.split('\n')
if Android == '':
messagebox.showinfo("Error",'INI文件Android版本号为空!!!')
sys.exit(-1)
if Modem == '':
messagebox.showinfo("Error",'INI文件Modem版本号为空!!!')
sys.exit(-1)
if NV == '':
messagebox.showinfo("Error",'INI文件NV版本号为空!!!')
sys.exit(-1)
list[0]='android版本信息: ' + Android
list[1]='modem版本信息: ' + Modem
list[2]='NV版本信息:' + NV
print(''.join(list))
#print('android版本信息: ' + Android + '\nmodem版本信息: ' + Modem + '\nNV版本信息:' + NV + "\n" + ''.join(list[3]))
table.cell(i,1).text = 'android版本信息: ' + Android + '\nmodem版本信息: ' + Modem + '\nNV版本信息:' + NV + "\n" + ''.join(list[3])
doc.save(releasenote)
else:
messagebox.showinfo("Error",'没有选择releasenote文件')
self.ro_text.set("您没有选择任何ReleaseNote文件")
sys.exit(-1)
def run(self):
try:
self.win.mainloop()
except Exception as e:
print ("*** exception:\n".format(e))
def open_docx(file='demo.docx'):
try:
doc = Document(file)
except Exception as e:
str(e)
def main():
window = tk.Tk()
window.title('ReleaseNote&Ini')
Window(window).run()
if __name__ == "__main__":
main()
Python读写word和ini配置文件
最新推荐文章于 2023-09-11 23:43:40 发布