日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

Python读写word文档

發(fā)布時(shí)間:2024/1/18 python 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python读写word文档 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

目錄

前言

一、環(huán)境搭建

二、Word文檔的讀取

1.導(dǎo)入所需要的庫(kù)

2.讀取文檔并提取段落數(shù)

3.讀取docx中的段落文本內(nèi)容

4.讀取docx中的表格內(nèi)容

?三、Word文件的寫入

保存文件

總結(jié)



前言

Word文檔與其他純文本文檔的比較:

????????和純文本文檔相比,word種含有各種格式和樣式,需要設(shè)置字體格式和大小、顏色,加粗等,段落間距行距等,其中還會(huì)涉及圖表、公式等插入與調(diào)整。

????????run對(duì)象

????????一個(gè)Run對(duì)象是具有相同格式的文本,當(dāng)發(fā)生變化的時(shí)候就需要一個(gè)新的Run對(duì)象。例如:共計(jì)6個(gè)run對(duì)象的文本:


????????AVL Cruise是AVL公司開發(fā)的一款整車及動(dòng)力總成仿真分析軟件。它可以研究整車的動(dòng)力性、燃油經(jīng)濟(jì)性、排放性能及制動(dòng)性能,是車輛系統(tǒng)的集成開發(fā)平臺(tái)。AVL Cruise軟件已經(jīng)成功的在整車生產(chǎn)商和零部件供應(yīng)商之間搭建起了溝通的橋梁。


第0個(gè)Run對(duì)象文本: AVL Cruise
第1個(gè)Run對(duì)象文本:
第2個(gè)Run對(duì)象文本: AVL
第3個(gè)Run對(duì)象文本: 公司開發(fā)的一款整車及動(dòng)力總成仿真分析軟件。它可以研究整車的動(dòng)力性、燃油經(jīng)濟(jì)性、排放性能及制動(dòng)性能,是車輛系統(tǒng)的集成開發(fā)平臺(tái)。
第4個(gè)Run對(duì)象文本: AVL Cruise
第5個(gè)Run對(duì)象文本: 軟件已經(jīng)成功的在整車生產(chǎn)商和零部件供應(yīng)商之間搭建起了溝通的橋梁。

一、環(huán)境搭建

? ? ? ? 讀寫Word也需要像讀寫Excel一樣導(dǎo)入包,讀寫Word文檔的操作均由python-docx模塊,模塊直接使用Ppip安裝:

pip install python-docx

二、Word文檔的讀取

1.導(dǎo)入所需要的庫(kù)

import?docx????????#?讀取Word文檔

2.讀取文檔并提取段落數(shù)

doc =docx.Document(r'C:/Users/ypzhao/Desktop/訓(xùn)練/test.docx')# 讀取docx文件中的內(nèi)容 print(len(docx.paragraphs))#輸出總的段落數(shù)

3.讀取docx中的段落文本內(nèi)容

# 讀取word文檔中的第一段內(nèi)容 print(docx.paragraphs[0].text)'''指定word某幾段內(nèi)容讀取''' for i in range(2,5):print(docx.paragraphs[i].text)'''讀取word種所有內(nèi)容讀取''' for paragraph in docx.paragraphs:print(paragraph.text)

4.讀取docx中的表格內(nèi)容

for t in docx.tables: # for 循環(huán)獲取表格對(duì)象for row in t.rows: # 獲取每一行row_str = []for cell in row.cells: row_str.append(cell.text)print(row_str)

?運(yùn)行結(jié)果:


?三、Word文件的寫入

  • 換行
# 換行 para = docx.add_paragraph().add_run('\n')
  • word中表格寫入
list1 = [ ["語文","數(shù)學(xué)","英語"], ["100","100","100"], ["100","100","100"], ["100","100","100"], ["100","100","100"] ] list2 = [ ["政治","歷史","地理"], ["100","100","100"], ["100","100","100"], ["100","100","100"], ["100","100","100"] ] table1 = docx.add_table(rows=5,cols=3)for row in range(5):cells = table1.rows[row].cellsfor col in range(3):cells[col].text = str(list1[row][col])table2 = docx.add_table(rows=4,cols=3)for row in range(4):cells = table2.rows[row].cellsfor col in range(3):cells[col].text = str(list2[row][col])t = docx.tables[1] workbook = Workbook() sheet = workbook.active for i in range(len(t.rows)):list1 = []for j in range(len(t.columns)):list1.append(t.cell(i,j).text)sheet.append(list1) workbook.save("table1.xlsx")
  • 保存文件

docx.save('test.docx')

完整代碼

# -*- coding: utf-8 -*- """ Created on Sun May 7 14:22:49 2023@author: ypzhao""" # 寫入docx文件 import docx # 設(shè)置圖片格式 from docx.shared import Cm from openpyxl import Workbook from docx import Document from docx.shared import Pt, RGBColor from docx.oxml.ns import qndocx =docx.Document(r'C:/Users/ypzhao/Desktop/訓(xùn)練/test.docx')'''段落讀取''' # 讀取docx文件中的內(nèi)容 print(len(docx.paragraphs))#輸出總的段落數(shù) # 讀取word文檔中的第一段內(nèi)容 print(docx.paragraphs[0].text)# 查看第1段中的對(duì)象數(shù) print(len(docx.paragraphs[0].runs)) for i in range(6):print(f'第{i}個(gè)Run對(duì)象文本:',docx.paragraphs[0].runs[i].text)'''指定word某幾段內(nèi)容讀取''' for i in range(2,5):print(docx.paragraphs[i].text)'''讀取word種所有內(nèi)容讀取''' for paragraph in docx.paragraphs:print(paragraph.text)for t in docx.tables: # for 循環(huán)獲取表格對(duì)象for row in t.rows: # 獲取每一行row_str = []for cell in row.cells: # 獲取每一行單獨(dú)的小表格,然后將其內(nèi)容拼接起來;拼接完成之后再第二個(gè)for循環(huán)中打印出來row_str.append(cell.text)print(row_str)p1 = docx.add_paragraph('這是一個(gè)段落') # 加粗 p1.add_run('加粗的一句話').bold = True # 斜體 p1.add_run("這句是斜體文字塊").italic = Truedocx.add_paragraph('這是第二個(gè)段落')docx.add_paragraph('這是一個(gè)段落,后面帶圖片')''' Cm 模塊,用于設(shè)定圖片尺寸大小 只給定一個(gè)寬度或高度 '''docx.add_picture('electric vehicle.png',width=Cm(14),height=Cm(7)) docx.add_paragraph('這是第二個(gè)段落')# 分頁 docx.add_page_break() paragraph1 = docx.add_paragraph("這是新增的一頁")Document().add_heading('正文',1).add_run("前言") Document().add_heading('標(biāo)題',2)'''添加表格''' # 換行 para = docx.add_paragraph().add_run('\n') # 換行 para = docx.add_paragraph().add_run('\n') # 換行 para = docx.add_paragraph().add_run('\n') # 換行 para = docx.add_paragraph().add_run('\n')list1 = [ ["語文","數(shù)學(xué)","英語"], ["100","100","100"], ["100","100","100"], ["100","100","100"], ["100","100","100"] ] list2 = [ ["政治","歷史","地理"], ["100","100","100"], ["100","100","100"], ["100","100","100"], ["100","100","100"] ] table1 = docx.add_table(rows=5,cols=3)for row in range(5):cells = table1.rows[row].cellsfor col in range(3):cells[col].text = str(list1[row][col]) docx.add_paragraph("---------------------------------------------------------")table2 = docx.add_table(rows=4,cols=3)for row in range(4):cells = table2.rows[row].cellsfor col in range(3):cells[col].text = str(list2[row][col])t = docx.tables[1] workbook = Workbook() sheet = workbook.active for i in range(len(t.rows)):list1 = []for j in range(len(t.columns)):list1.append(t.cell(i,j).text)sheet.append(list1) workbook.save("table1.xlsx")docx.save('test.docx')

提示:下期再見!

總結(jié)

以上是生活随笔為你收集整理的Python读写word文档的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。