python-docx文件路徑問題的解決方案
path = "test.docx"
以工程下venv
文件夾為父目錄
補充:Python讀取指定目錄下指定後綴文件並保存為docx
最近有個奇葩要求 要項目中的N行代碼 申請專利啥的
然後作為程序員當然不能復制粘貼 用代碼解決。。
使用python-docx讀寫docx文件
環境使用python3.6.0
首先pip安裝python-docx
pip install python-docx
然後下面是腳本 修改目錄,這裡默認取腳本運行目錄下的src文件夾
取.cs後綴的所有文件 讀取並保存為docx
有一點需要註意,如果文件中有中文,請用vscode或者其他編輯器使用utf-8格式打開,看看有沒有亂碼 其中每處理一個文件都會有print輸出 當看到隻有—start沒有end的時候就可以找到該文件查看是否有上面說的情況,修改後保存重新執行,一直到全部執行完畢,保存好docx文件
代碼
# -- coding: UTF-8 -- # Created by luody on 2017/4/7. import os from docx import Document saveFile = os.getcwd() + "/code.docx" mypath = os.getcwd() + "/src" doc = Document() doc.add_heading("代碼文檔", 0) p = doc.add_paragraph('服務端代碼,使用語言') p.add_run('C#,SQL').bold = True lineNum = 0 for root, dirs, files in os.walk(mypath): for filespath in files: if (filespath.endswith('.cs')): doc.add_heading(filespath, level=1) codePage = '' print(filespath+' ---- start') for line in open(os.path.join(root, filespath), encoding="utf-8"): codePage += line lineNum += 1 print(filespath+' ---- end') doc.add_paragraph(codePage, style='IntenseQuote') doc.add_page_break() p = doc.add_paragraph(u'總行數:') p.add_run(str(lineNum)).bold = True doc.save('code.docx') print(lineNum)
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。如有錯誤或未考慮完全的地方,望不吝賜教。
推薦閱讀:
- Python操作word文檔的示例詳解
- Python從MySQL數據庫中面抽取試題,生成試卷
- Python+MySQL隨機試卷及答案生成程序的示例代碼
- Python快速優雅的批量修改Word文檔樣式
- 詳解python-docx處理Word必備工具