物理の駅 by onsanai

Physics Station → PhSt 質問・疑問・間違いの指摘は、コメントに書くか、直接伝えるときっと良いことがあります。主にWindows or Ubuntu用の記事です

PythonでZIPファイルを作成する

arXivに投稿する時、関連するファイルをZIPファイルで書庫化しておくと楽である。動的にZIPファイルを作るにはPythonが手っ取り早いので、コードを作ってみた。

# PTEPのフォーマットで必要なファイルリスト
# bibを使うときはbblも必要
import zipfile
import re
files = ["xihpaper.tex", "xihpaper.bib", "xihpaper.bbl",
         "ptephy_v1.cls", "authblk-TI.sty", "preprint_v1.clo"]


lines = open(files[0], encoding="utf-8").readlines()
for line in lines:
    # 図はすべてfigs2ディレクトリにPDFファイルで存在するので正規表現で探索する
    match = re.search(r"figs2/.+\.pdf", line)
    if match is not None:
        # ファイルリストに追加
        files.append(match.group(0))


# ZIPファイルを定義
zip = zipfile.ZipFile("xihpaper.zip", "w", zipfile.ZIP_DEFLATED)

# ZIPファイルに追記
for file in files:
    zip.write(file, file)

# ZIPファイルを閉じる
zip.close()