生活随笔
收集整理的這篇文章主要介紹了
Python3--自动化办公
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
主要記一下Python對辦公文件的簡單處理,如word、excel、pdf、csv及ppt。因為內容比較多,不細究原理了,直接寫應用吧~ Word 寫入Word文件。注:使用了win32com模塊,只能在win系統下使用... import win32com
import win32com.client
import os
def makeWord(fileName,name): # 打開word應用程序 word=win32com.client.Dispatch(" Word.Application " ) # 讓文檔可見 word.Visible=True # 創建文檔 doc=word.Documents.Add() # 寫內容,從頭開始 r=doc.Range(0,0) # 開始插入內容 r.InsertAfter(" 有人喜歡小溪,是因為沒見過大海。 " )r.InsertAfter( " 我看過銀河,可我只愛一粒星-- " +name) # 存儲文件
doc.SaveAs(path) # 關閉文件
doc.Close() # 退出word
word.Quit()names =[" 張三 " ," 李四 " ," 王五 " ]
for name in names: # 獲取當前絕對路徑來存放文件 path=os.path.join(os.getcwd(),name)makeWord(path,name) ?
?
?
讀取Word文件 import win32com
import win32com.client
import os def readWord(path): # 調用系統word功能,可以處理doc和docx文件 mw=win32com.client.Dispatch(" Word.Application " ) # 打開文件 doc=mw.Documents.Open(path) for par in doc.Paragraphs:line =par.Range.Text print (line) # 關閉
doc.Close() # 退出word
mw.Quit()path = os.path.join(os.getcwd(),' 張三.docx ' )
readWord(path) #有人喜歡小溪,是因為沒見過大海。我看過銀河,可我只愛一粒星--張三 ?
Excel 寫入xls文件? 注:這里使用了pyexcel_xls,需要另行安裝(pip install pyexcel_xls) # 有序字典
from collections import OrderedDict
from pyexcel_xls import save_data def makeExce(path,data): # 有序字典 dic = OrderedDict() for sheetName,sheetValue in data.items():d = {}d[sheetName] = sheetValue # 此格式的有序字典,sheetName為子表名,sheetValue為表中的數據
dic.update(d) # 保存
save_data(path,dic)path = r" C:\Users\Administrator\Desktop\make.xls "
# 只能寫xls格式的excel文件
makeExce(path,{" 表1 " :[[1,2,3],[4,5,6]]," 表2 " :[[11,22,33],[44,55,66]]}) ?
讀取xls 或 xlsx文件 from collections import OrderedDict
from pyexcel_xls import get_data def readXls(path):dic =OrderedDict() # 抓取數據 xdata=get_data(path) for sheet in xdata:dic[sheet] =xdata[sheet] # 返回的是有序字典 return dicpath =r" C:\Users\Administrator\Desktop\make.xls "
dic =readXls(path)
print (dic[' 表1 ' ][1]) #[4, 5, 6] ?
PPT
寫入PPT? import win32com
import win32com.client def makePpt(path):ppt = win32com.client.Dispatch(" PowerPoint.Application " ) # 讓文檔可見 ppt.Visible = True # 增加一個文件 pptFile = ppt.Presentations.Add() # 創建頁 參數1為頁數(從1開始)參數2為類型(主題) page1 = pptFile.Slides.Add(1,1)t1 = page1.Shapes[0].TextFrame.TextRanget1.Text = " sunck " t2 = page1.Shapes[1].TextFrame.TextRanget2.Text = " sunck is a good man " # 保存
pptFile.SaveAs(path)pptFile.close()ppt.Quit()path =r" C:\Users\Administrator\Desktop\make.ppt "
makePpt(path) ?
?
CSV
寫csv文件 import csv def writeCsv(path,data): # 使用這個newline=""可以解決win下自動添加空行的問題 with open(path, " w " ,newline="" ) as f:writer = csv.writer(f) for row in data:# 整行寫入,這里是二維列表,一個一維列表寫為一行
writer.writerow(row)path = r" C:\Users\Administrator\Desktop\make.csv "
data = [[' admin ' ,' admin ' ,' admin ' ],[' byadmin ' ,' byadmin ' ,' byadmin ' ],[' byadmin ' ,' byadmin ' ,' byadmin ' ]]
writeCsv(path,data) ?
?
讀取csv文件
import csv def readCsv(path):contentList = []with open(path, " r " ) as f:allFileInfo = csv.reader(f) for row in allFileInfo:contentList.append(row) return contentList
path = r" C:\Users\Administrator\Desktop\make.csv "
print (readCsv(path)) #[['admin', 'admin', 'admin'], ['byadmin', 'byadmin', 'byadmin'], ['byadmin', 'byadmin', 'byadmin']] ?
PDF
讀PDF? PDF轉TXT需安裝pdfminer3k(pip install pdfminer3k) import sys
import importlib
importlib.reload(sys) from pdfminer.pdfparser import PDFParser,PDFDocument
from pdfminer.pdfinterp import PDFResourceManager,PDFPageInterpreter
from pdfminer.converter import PDFPageAggregator
from pdfminer.layout import LTTextBoxHorizontal,LAParams
from pdfminer.pdfinterp import PDFTextExtractionNotAllowed def readPdf(path,toPath):f =open(path," rb " ) # 創建一個pdf文檔分析器 parser=PDFParser(f) # 創建一個PDF文檔 pdfFile=PDFDocument() # 連接分析器與文檔對象
parser.set_document(pdfFile)pdfFile.set_parser(parser) # 提供初始化密碼
pdfFile.initialize() # 檢測文檔是否提供txt轉換 if not pdfFile.is_extractable: raise PDFTextExtractionNotAllowed else : # 解析數據 # 數據管理器 manager=PDFResourceManager() # 創建一個PDF設備的對象 laparams=LAParams()device =PDFPageAggregator(manager,laparams=laparams) # 解析器對象 interpreter=PDFPageInterpreter(manager,device) # 開始循環處理,每次處理一頁 for page in pdfFile.get_pages():interpreter.process_page(page) # 處理圖層 layout=device.get_result() for x in layout: if (isinstance(x,LTTextBoxHorizontal)):with open(toPath, " a " ) as f:str =x.get_text() # print(str) f.write(str+" \n " )path =r" C:\Users\Administrator\Desktop\英語語法.pdf "
toPath =r" C:\Users\Administrator\Desktop\res.txt "
# 從pdf文件提取字符保存到txt文件
readPdf(path,toPath) ?
轉載于:https://www.cnblogs.com/byadmin/articles/useful-1.html
總結
以上是生活随笔 為你收集整理的Python3--自动化办公 的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔 網站內容還不錯,歡迎將生活随笔 推薦給好友。