写一个python代码,实现需求: 1、打开output.txt文件; 2、搜索output.tx文档的内容,找到"修改后的内容:",将"修改后的内容:"往后的每一行存储到列表result[]中; 3、继续搜索,找到"影响范围:",结束存储; 4、打开模板.docx文档,找到里面的第二个表格doc.tables[1]; 5、将result[]中的内容依次填入doc.tables[1]第13行开始的第3列中; 6、将doc.tables[1]中12至80行删除。
时间: 2024-02-27 14:55:26 浏览: 141
生成output.txt文件的代码
3星 · 编辑精心推荐
以下是代码实现:
```python
import docx
# 打开output.txt文件,搜索"修改后的内容:"和"影响范围:"
with open('output.txt', 'r') as f:
result = []
flag = False
for line in f.readlines():
if flag:
if line.startswith('影响范围:'):
break
else:
result.append(line.strip())
elif line.startswith('修改后的内容:'):
flag = True
# 打开模板.docx文件,找到第二个表格doc.tables[1]
doc = docx.Document('模板.docx')
table = doc.tables[1]
# 将result[]中的内容依次填入doc.tables[1]第13行开始的第3列中
for i, item in enumerate(result):
table.cell(i+12, 2).text = item
# 将doc.tables[1]中12至80行删除
for i in range(79, 11, -1):
table._element.remove(table._element[i]._element)
# 保存模板.docx文件
doc.save('模板.docx')
```
注意,删除表格行的操作比较特殊,需要通过修改表格元素的XML结构来实现,因此直接调用`table.rows[i].delete()`是行不通的。在这里,我们使用了下划线开头的方法`table._element.remove()`来直接删除XML元素。
阅读全文