Python は 70 個の doc ファイルと docx ファイルをバッチでどのようにマージしますか

目次

1. 質問の提示

2. アルゴリズム解析

3. コード表示

4. 注意すべき事項


友人が、数字で名前が付けられた doc および docx ファイルを 70 個以上送ってきて、これらのファイルを数字のサイズ順にマージできる VBA コードはないか尋ねてきました。chatgpt を使おうとしたのですが、大量の VBA コードが機能しなかったので、Python を見つけて試してみて良かったです。doc、docx ファイルをマージする

2. アルゴリズム解析

変換を実装する前に、ファイルのトラバーサル、形式の変換、および新しいファイルへの最終的なマージが必要です。以下はアルゴリズムのステップです

  1. 現在のディレクトリ ファイルをスキャンします。 走査するには os.listdir() を使用します。
  2. フォーマット変換。changeOffice モジュールを使用して、doc および docx 形式のバッチ変換を実現します。
  3. ドキュメントをマージします。python-docx のドキュメントを使用して、前のファイルを読み取って追加します。

3. コード表示

テスト後、次のコードをコンパイルしました。

from docx import Document
from changeOffice import Change
import os,time
Change(".").doc2docx() #把当前目录下的doc批量转化为docx
time.sleep(3) #设置停顿时间,以防出错
files = sorted([file for file in os.listdir(".") if file.endswith(".docx")],key=lambda x:int(x[:-5])) #文件遍历和排序
doc1 = Document(files[0]) # 读取第一个文档
for file in files[1:]:
    doc = Document(file) # 读取第二个文档 
    for element in doc.element.body:  #拷贝文件中的信息,# 追加第二个文档内容到第一个文档末尾
        doc1.element.body.append(element)
doc1.save('merged_file.docx') # 保存新的合并文件

上記のコードの利点は、結合されたファイルの段落やフォントなどの形式情報が変更されないことが保証され、変換効率が非常に高いことです。テストして、質問がある場合は報告してください。

4. 注意すべき事項

  1. VBA と Python には、オフィス オートメーションにおいて独自の利点があります。Python の最大の利点は、既製のモジュールを使用して、最初から開始することなく、必要な機能をすぐに実現できることです。これにより、プログラミング プロセスが簡素化され、コードが高速に実行されます。
  2. 上記のコードを実行する前に、Python 環境がインストールされていることを確認し、同時に python-docx および changeOffice パッケージも pip でインストールする必要があります。プログラムの実行中は、すべてのファイルを閉じたままにし、コード ファイルをすべての Word ファイルのディレクトリに配置する必要があります。
  3. このプログラムは、ファイル名が数字である Word ファイルのマージにのみ適しています。そのようなファイルは順番にマージでき、その他の数字以外のファイル名はコードを適切に変更できるためです。
  4. ファイル形式の変換後、changeOffice はデフォルトで元のファイルを削除するため、プログラムを実行する前に必ず元のファイルをバックアップしてください。

おすすめ

転載: blog.csdn.net/henanlion/article/details/131060262