1、讀取文件夾下的所有文件,並過濾出.doc文件(因為python依賴包docx只能打開.docx文件,需要先過濾出.doc文件將其轉為.docx)
import os def list_files_doc(path): files_doc = [] for i, j, k in os.walk(path): for file in k: suffix = file.split('.') if suffix[1] == 'doc': print(file) files_doc.append(os.path.join(path, file)) print('doc格式的文件列表:{}'.format(files_doc)) return files_doc if __name__ == '__main__': list_files_doc('E:\\python_myfile\\read_excel')
2、將.doc文件轉為.docx文件
from win32com import client as wc # 導入模塊 def doc2docx(doc_files): word = wc.Dispatch("Word.Application") # 打開word應用程序 for doc_file in doc_files: doc = word.Documents.Open(doc_file) # 打開word文件 doc.SaveAs("{}x".format(doc_file), 12) # 另存為后綴為".docx"的文件,其中參數12指docx文件 doc.Close() # 關閉原來word文件 word.Quit() print("doc文件轉docx完成") if __name__ == '__main__': doc2docx(['E:\\python_myfile\\read_excel\\用戶1信息.doc',])
3、從.docx文件讀取表格信息
from docx import Document import os def get_data_from_docx_files(path): print(path) data = [] for i, j, k in os.walk(path): for file in k: suffix = file.split('.') if suffix[1] == 'docx': document = Document(file) # 讀入文件 tables = document.tables # 獲取文件中的表格集 table = tables[0] name = table.cell(0, 1).text sex = table.cell(0, 3).text info = {"name": name, "sex": sex} print(info) data.append(info) return data if __name__ == '__main__': get_data_from_docx_files('E:\\python_myfile\\read_excel')
4、將信息輸出excel表格
import xlwt def output_excel(header, data, result_excel): # 讀取文本文件 book = xlwt.Workbook(encoding='utf-8', style_compression=0) # 創建一個Workbook對象,這就相當於創建了一個Excel文件 sheet = book.add_sheet('test', cell_overwrite_ok=True) # # 其中的test是這張表的名字,cell_overwrite_ok,表示是否可以覆蓋單元格,其實是Worksheet實例化的一個參數,默認值是False # 寫入表頭 i = 0 for k in header: sheet.write(0, i, k) i = i + 1 # 寫入內容 row = 1 for val in data: print(val) sheet.write(row, 0, val['name']) # 第二行第一列 sheet.write(row, 1, val['sex']) # 第二行第二列 row = row + 1 book.save(result_excel) if __name__ == '__main__': output_excel(['姓名', '性別'], [{'name':'Danny', 'sex': 'female'}, {'name':'Merry', 'sex': 'male'}], '結果.xls')