我正在使用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'
我不明白这里发生了什么。在实际文档中,我在保存文件时使用了++方法(将其保存为当前日期和时间)。
答案 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)
查看以下python库:https://python-docx.readthedocs.io/en/latest/