亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python自動化之批量生成含指定數(shù)據(jù)的word文檔

 更新時間:2021年11月24日 09:18:33   作者:軟件測試君  
在平時工作當中,經(jīng)常需要處理文件,特別是Word,我們常常會機械的重復打開、修改、保存文檔等一系列操作。本文將主要介紹如何通過Python批量生成含指定數(shù)據(jù)的word文檔,感興趣的同學可以來看一看

一、需求說明

在平時工作當中,經(jīng)常需要處理文件,特別是Word,處理Word時會遇一類比較常見的場景:文檔中大部分文字固定不變,小部分內容需要修改。

這時我們會機械的重復打開、修改、保存文檔等一系列操作,內容少還可勉強接受,內容一旦多了,心里難免會心浮氣躁。

今天我要給大家介紹一個秘密武器-docxtpl開發(fā)包,有了這個只需寫一份模板,其他的都交給電腦自己進行。

首先需要你的電腦安裝好了Python環(huán)境,并且安裝好了Python開發(fā)工具。

如果你還沒有安裝,可以參考以下文章:

如果僅用Python來處理數(shù)據(jù)、爬蟲、數(shù)據(jù)分析或者自動化腳本、機器學習等,建議使用Python基礎環(huán)境+jupyter即可,安裝使用參考Windows/Mac 安裝、使用Python環(huán)境+jupyter notebook

如果想利用Python進行web項目開發(fā)等,建議使用Python基礎環(huán)境+Pycharm,安裝使用參考:Windows下安裝、使用Pycharm教程,這下全了 和 Mac下玩轉Python-安裝&使用Python/PyCharm 。

秘密武器介紹

docxtpl:一個很強大的包,其主要通過對docx文檔模板加載,從而對其進行修改。

pandas:提供高性能易用數(shù)據(jù)類型和分析工具

安裝相關的第三方庫

Windows下按住Win+R打開運行窗口,輸入cmd進入命令提示符窗口(Mac打開終端即可),輸入以下命令安裝相關包:

pip install docxtpl

pip install pandas

使用案例

生成某學校計算機與信息工程學院的新生入學通知書合集。word模板和表格內容如下(雙括號處為待填寫的部分):

效果如下

二、開始動手動腦

第一步:導入相關模塊:

from docxtpl import DocxTemplate
import pandas as pd
import os

第二步:用Python新建文件夾用來存放入學通知書,如果文件夾已存在代碼會跳過這一步:

zpath = os.getcwd() + '\\'  #獲取當前的路徑
zpath = r'E:\python\tj' + '\\'
file_path = zpath + r'\通知書合集'
try:
    os.mkdir(file_path)  #創(chuàng)建一級目錄
except:
    pass

第三步:讀取csv文件中的數(shù)據(jù):

把表格里的每一列數(shù)據(jù)分別賦值給一個series類型變量,可以把series看成數(shù)組一樣的類型。

data = pd.read_csv(zpath+'AdmissionList.csv', encoding='gbk')  #讀取csv里的目標數(shù)據(jù)
name = data["姓名"].str.rstrip()  # str.rstrip()用于去掉空白
academy = data["學院"].str.rstrip()
major = data["專業(yè)"].str.rstrip()
begin_date = data["開始時間"].str.rstrip()
end_date = data["結束時間"].str.rstrip()

第四步:將數(shù)據(jù)寫入模板:

遍歷表格的每一行,將數(shù)據(jù)存入字典列表,

num = data.shape[0]   # 獲取數(shù)據(jù)行數(shù)
for i in range(num):
    context = {
       "姓名": name[i],
       "學院": academy[i],
       "專業(yè)": major[i],
       "開始時間": begin_date[i],
       "結束時間": end_date[i]
}

選定模板,

tpl = DocxTemplate(zpath+'入學通知書.docx')

渲染替換,將context里的內容寫入word模板中,

tpl.render(context)#渲染替換

保存文件,名字為:**的入學通知書。

tpl.save(file_path+r"\{}的入學通知書.docx".format(姓名[i]))

上述操作重復num(即表格中數(shù)據(jù)的行數(shù))次,寫完這些就可以在file_path中找到生成的文件啦。

可能出現(xiàn)的錯誤:

  1. 文件名亂碼:可以嘗試把解碼方式換成gbk;
  2. 權限問題:可能是需要讀入的數(shù)據(jù)文件正在被使用,關閉就行了;
  3. 生成的word文件行數(shù)混亂:可以把str.rstrip()寫成str.rstrip(‘\n');
  4. 只能生成同一份word文檔:每渲染一次,就要重新選定模板。

三、總結

通過本次實驗,我們實現(xiàn)了根據(jù)模板批量生成含指定數(shù)據(jù)的word文件,我最開始看代碼時不懂它是用的哪種類型變量接收從csv中讀取的數(shù)據(jù),通過打印輸出才知道是Pandas數(shù)據(jù)類型中的Series,百度后知道它類似于一維數(shù)組,可以保存任何數(shù)據(jù)類型。在后來運行代碼的過程中又不斷地出現(xiàn)各種各樣的錯誤,還都是沒遇到過的。

到此這篇關于Python自動化之批量生成含指定數(shù)據(jù)的word文檔的文章就介紹到這了,更多相關Python生成含指定數(shù)據(jù)的word文檔內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • python3 圖片 4通道轉成3通道 1通道轉成3通道 圖片壓縮實例

    python3 圖片 4通道轉成3通道 1通道轉成3通道 圖片壓縮實例

    今天小編就為大家分享一篇python3 圖片 4通道轉成3通道 1通道轉成3通道 圖片壓縮實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • Python 實現(xiàn)一個顏色色值轉換的小工具

    Python 實現(xiàn)一個顏色色值轉換的小工具

    這篇文章主要介紹了Python 實現(xiàn)一個顏色色值轉換的小工具的相關資料,需要的朋友可以參考下
    2016-12-12
  • python?matplotlib繪畫十一種常見數(shù)據(jù)分析圖

    python?matplotlib繪畫十一種常見數(shù)據(jù)分析圖

    這篇文章主要介紹了python?matplotlib繪畫十一種常見數(shù)據(jù)分析圖,文章主要繪制折線圖、散點圖、直方圖、餅圖等需要的小伙伴可以參考一下文章具體內容
    2022-06-06
  • PyQt6中自定義浮點型滑塊類的實現(xiàn)

    PyQt6中自定義浮點型滑塊類的實現(xiàn)

    在PyQt6中,滑塊是常用的用戶界面元素之一,用于選擇數(shù)值范圍,本文主要介紹了PyQt6中自定義浮點型滑塊類的實現(xiàn),具有一定的參考價值,感興趣的可以了解一下
    2024-03-03
  • 提升?Python?代碼運行速度的6個技巧

    提升?Python?代碼運行速度的6個技巧

    本文分享了提升?Python?代碼運行速度的6個技巧,Python?比我們想象的運行的要快。我們之所以有先入為主的認為Python運行慢,可能是我們平常的誤用和缺乏使用技巧知識。接下來讓我們看看如何用一些簡單的Trick來提高我們程序的運行性能,需要的朋友可以參考一下
    2022-01-01
  • 在python plt圖表中文字大小調節(jié)的方法

    在python plt圖表中文字大小調節(jié)的方法

    今天小編就為大家分享一篇在python plt圖表中文字大小調節(jié)的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • pandas 層次化索引的實現(xiàn)方法

    pandas 層次化索引的實現(xiàn)方法

    這篇文章主要介紹了pandas 層次化索引的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-07-07
  • Python 命令行參數(shù)sys.argv

    Python 命令行參數(shù)sys.argv

    命令行參數(shù)是通過sys.argv[]來獲取的,sys.argv[0]是代碼文件本身的路徑,因此參數(shù)是從1開始的。比如設置參數(shù)為: spe
    2008-09-09
  • Python實現(xiàn)的企業(yè)粉絲抽獎功能示例

    Python實現(xiàn)的企業(yè)粉絲抽獎功能示例

    這篇文章主要介紹了Python實現(xiàn)的企業(yè)粉絲抽獎功能,涉及Python數(shù)值運算與隨機數(shù)生成相關操作技巧,需要的朋友可以參考下
    2019-07-07
  • python實現(xiàn)字符串加密成純數(shù)字

    python實現(xiàn)字符串加密成純數(shù)字

    這篇文章主要為大家詳細介紹了python實現(xiàn)字符串加密成純數(shù)字,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-03-03

最新評論