将txt文件信息插入docx

时间:2017-03-28 06:07:29

标签: python tkinter python-3.5 python-docx

我正在使用python 3.5,python-docx和TKinter。有没有办法能够在输入框中键入.txt文件名并让python将该.txt文件的内容插入到docx中的特定位置?我知道如何从tkinter的Entry框中获取信息以及如何将它们转换为字符串。

我希望能够在输入框中输入someone名称(也可以是文本文件的名称),并让python插入.txt文件的内容。

由于

这里更新的是我正在尝试的代码

from tkinter import *
from tkinter import ttk
import tkinter as tk
from docx import Document
root=Tk()

def make_document():
    testbox=ProjectEngineerEntry.get()
    TestBox=str(testbox)

    def projectengineer():
        with open(+TestBox+'.txt') as f:
            for line in f:
                document.add_paragraph(line)
    document=Document()

    h1=document.add_heading('engineer test',level=1)
    h1a=document.add_heading('Project Engineer',level=2)
    projectengineer()

    document.save('test.docx')

notebook=ttk.Notebook()
notebook.pack(fill=BOTH)
frame1=ttk.Frame(notebook)
notebook.add(frame1,text='Tester',sticky=W)
tester1=Label(frame1,text='Test1')
ProjectEngineerEntry=Entry(frame1)
tester1.pack()
ProjectEngineerEntry.pack()
save=Button(frame1,text='Save',command=make_document).pack()

正如您所看到的,我正在尝试从输入框中获取信息,将其转换为字符串,然后使用该字符串打开具有该特定名称的文本文件。但是我一直在

TypeError:一元+的错误操作数类型:' str'

我不明白这里发生了什么。在实际文档中,我在保存文件时使用了++方法(将其保存为当前日期和时间)。

2 个答案:

答案 0 :(得分:1)

python-docx没有此功能,而且它不太可能。通常,使用python-docx来完成此类操作以适应脚本或应用程序。像这样:

from docx import Document

document = Document()
with open('textfile.txt') as f:
    for line in f:
        document.add_paragraph(line)
document.save('wordfile.docx')

您需要处理详细信息,例如段落如何分隔(可能是空行)等等,但代码不需要比此长得多。

答案 1 :(得分:0)