Python读写word和ini配置文件

# -*- 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()


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值