国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
用Python讀寫word文檔
2018年04月05日 13:21:53 只讀課堂 閱讀數(shù):1178
Python讀寫word文檔有現(xiàn)成的庫可以處理。我這里采用 python-docx??梢杂胮ip install python-docx安裝一下。
這里說一句,ppt和excel也有類似的庫哦,而且是直接讀取文件里面的xml數(shù)據(jù)。所以doc格式得另找其他庫處理,doc格式不是基于xml的。
1、新建或打開文件。這個比較簡單用docx的Document類,若指定路徑則是打開文檔;若沒有指定路徑則是新建文檔
#coding:utf-8
import docx
#新建文檔
doc_new = docx.Document()
#讀取文檔
doc = docx.Document(ur'C:\1.docx')
2、保存文件。有打開,就有保存。用Document類的save方法,其中參數(shù)是保存的文件路徑,或者要保存的文件流。一般指定路徑即可。
doc.save(path_or_stream)3、對象集合。python-docx包含了word文檔的相關(guān)對象集合。
doc.paragraphs #段落集合
doc.tables #表格集合
doc.sections #節(jié) 集合
doc.styles #樣式集合
doc.inline_shapes #內(nèi)置圖形 等等...
4、插入段落。段落是word最基本的對象之一。
doc.add_paragraph(u'第一段',style=None) #插入一個段落,文本為“第一段”
#默認(rèn)是不應(yīng)用樣式,這里也可以不寫style參數(shù),或者指定一個段落樣式
doc.add_paragraph(u'第二段',style='Heading 2')
#這些樣式都是word默認(rèn)帶有的樣式,可以直接羅列出來有哪些段落樣式
print [s.name for s in doc.styles if s.type==1]
5、新增樣式。這個幫助文檔里面說得不仔細(xì),而且還是英文的。我手頭上的項(xiàng)目用到這個,就自己琢磨出怎么使用,如下。
#coding:utf-8
from docx import Document
from docx.shared import RGBColor #這個是docx的顏色類
#新建文檔
doc = Document()
#新增樣式(第一個參數(shù)是樣式名稱,第二個參數(shù)是樣式類型:1代表段落;2代表字符;3代表表格)
style = doc.styles.add_style('style name 1', 2)
#設(shè)置具體樣式(修改樣式字體為藍(lán)色,當(dāng)然還可以修改其他的,大家自己嘗試)
style.font.color.rgb = RGBColor(0x0, 0x0, 0xff)
6、應(yīng)用字符樣式。字符自然是在段落里面的,可以采用下面方法給段落追加文字和設(shè)置字符樣式。
#插入一個空白段落
p = doc.add_paragraph('')
p.add_run('123', style="Heading 1 Char")
p.add_run('456')
p.add_run('789', style="Heading 2 Char")
#這樣一個段落就應(yīng)用了兩個字符樣式,中間“456”就沒應(yīng)用樣式
print p.text #輸出結(jié)果是u'123456789' 也還是連續(xù)的
7、設(shè)置字體。當(dāng)然可以不用通過設(shè)置樣式對某些字進(jìn)行設(shè)置,也可以直接設(shè)置。
p = doc.add_paragraph('')
r = p.add_run('123')
r.font.bold = True #加粗
r.font.italic = True #傾斜 等等...
8、表格操作。表格也是經(jīng)常用到的一種對象類型。
#新建一個2x3的表格,style可以不寫
table=doc.add_table(rows=2,cols=3,style=None)
#可以用table 的rows和columns得到這個表格的行數(shù)和列數(shù)
print len(table.rows)
print len(table.columns)
#遍歷表格
for row in table.rows:
row.cells[0].text = '1'
#print row.cells[0].text
#新增行或列
table.add_row()
table.add_column()
Word常見操作差不多就是這些。大家可以查看幫助文檔,也可以用dir和help查看對象的方法屬性和幫助。
下面的例子可以運(yùn)行于任何平臺(PC、Mac、樹莓派……)。但是,如果想看到產(chǎn)生的文檔,你還是需要一個能打開Office文檔的應(yīng)用。沒有安裝微軟Office的話,其他替代軟件比如AbiWord、OpenOffice、WPS之類的都可以。
首先安裝python-docx這個Python庫
$ pip install python-docx -U(注意,在PyPi里還有一個叫docx的庫,已經(jīng)停止更新,不建議使用)
這個庫依賴于lxml,在Windows下可能需要編譯器。如果在安裝python-docx過程中發(fā)現(xiàn)找不到編譯器或者編譯lxml錯誤的現(xiàn)象,可到 https://pypi.python.org/pypi/lxml/2.3/下載和安裝預(yù)編譯的版本。
只需要4行代碼就可以創(chuàng)建一個Word文檔:
from docx import Document
document = Document()
document.add_paragraph('Hello,Word!')
document.save('demo.docx')
第一行引入docx庫和Document類。Document類即代表了『文檔』,第二行創(chuàng)建了Document類的一個實(shí)例document,相當(dāng)于『這篇文檔』。緊接著,我們在文檔中利用add_paragraph函數(shù)添加一個段落,段落的內(nèi)容是Hello,Word!。最后,用save函數(shù)將文檔保存在磁盤上。
運(yùn)行這個腳本,就得到了文件demo.docx。用Office軟件打開,看看里面的內(nèi)容。
下面一個任務(wù)是在一個Word文檔里添加255個圓圈,顏色為紅色由淺入深。顯然,這個任務(wù)在Word里人工完成是非常麻煩的。但用代碼就非常簡單了。
from docx import Document
from PIL import Image,ImageDraw
from io import BytesIO
document = Document() #新建文檔
p = document.add_paragraph() #添加一個段落
r = p.add_run() #添加一個游程
img_size = 20
for x in range(255):
im = Image.new("RGB", (img_size,img_size), "white")
draw_obj = ImageDraw.Draw(im)
draw_obj.ellipse((0,0,img_size-1,img_size-1), fill=255-x)#畫圓
fake_buf_file = BytesIO()#用BytesIO將圖片保存在內(nèi)存里,減少磁盤操作
im.save(fake_buf_file,"png")
r.add_picture(fake_buf_file)#在當(dāng)前游程中插入圖片
fake_buf_file.close()
document.save("demo.docx")
畫圖我們利用了常用的PIL庫。
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
教你怎么使用Python對word文檔進(jìn)行操作
用Python讀寫Word文檔入門
Word 神器 python-docx
編程語言Python 操作 Word
Python自動化辦公系列之Python操作Word
用 python 來操作 docx, xlsx 格式文件(二)(使用 docx 庫操作 docx 格式文件
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服