ちょっと便利なミニプログラム_001

クリスタのファイル名を一括変換

 2020年に『ゲームセンターあらしと学ぶプログラミング マンガ版「こんにちはPython」』という本を描き下ろしで出しました。この本では、「フィズバズ・ゲーム」「じゃんけんゲーム」「スカッシュゲーム」といった簡単なゲームのプログラムを作る方法を説明していますが、日常でもプログラミングは、よくやっています。

 同じことの繰り返しをする必要があったら、その作業の自動化ができないかと考え、すぐにプログラミングをはじめます。

 今年のはじめまで、京都精華大学大学院マンガ研究科で、留学生を対象に、ストーリーマンガの描き方を指導していました。いまどきのマンガを描く学生は、もう全員がデジタルです。

 使っているソフトは、これまた全員が「クリスタ」の愛称で知られる「CLIP STUDIO PAINT」です。この「CLIP STUDIO PAINT」には2種類あります。「CLIP STUDIO PAINT PRO」「CLIP STUDIO PAINT EX」の2種類です。

 ページ数が多いストーリーマンガには、ふつう「CLIP STUDIO PAINT EX」を使います。ページ管理ができて便利だからです。

 でも「EX」は、値段が高いのが玉にきず。「PRO」が5,000円なのに対し、「EX」は23,000円もするからです。「PRO」はパソコンにプレインストールされていることもあって、学生の中には、こちらを使うこともあります(京都精華大学では、マンガ学部の学生ですとパソコンの購入が必須で、サブスクのクリスタもついてくるのですが、すでに自分のPCを持つ大学院生には購入義務はありません)。

 将来、「ストーリーマンガを描く機会は少ない」と考えている留学生は、一枚もののイラストが描ける「PRO」で充分と考えているようです。

 そのため、ページの多いストーリーマンガも「PRO」で描くのですが、この場合、ファイル名は「manga_01.clip」「作品名_02.clip」のような好きなファイル名で保存される例がほとんどです。

 このような原稿のファイルが数十ページも送られてくるのですが、この状態だと不便なのが、受け取った側で「EX」のページ管理機能が使えないこと。32ページでも45ページでも、まとめて原稿を管理できるのが「EX」の便利な点ですが、その長所が使えません。

 そこで学生の作品が32ページだったら、教員は手もとの「EX」で32ページの新しいファイルを作ります。するとページ管理用の「題名.cmc」というファイルと一緒に「page0001.clip」~「page0032.clip」というページごとのファイルも作られます。

 この状態ですと「page0001.clip~」のファイルは白紙の状態なので、学生の作品ファイルを「page0001.clip」の形式にリネーム(ファイル名変更)してから、新しい作品ファイルに上書き保存することになります。これで「題名.cmc」を開けば、学生のマンガ全編が管理できるわけです。

 でも、このファイル名の変換(リネーム)が面倒です。手作業でやっていると、1人や2人ならいいのですが、3人、4人になると、ちょっとイヤになってきます。

「学生にファイルは『page0001.clip』の形式で保存して」と指示しても、なかなか守ってくれません。ファイル名のつけ方は、それぞれの習慣になっていたりするからです。

 それでMS-DOSの「rename(ren)」コマンドや「copy」コマンドを使ってBATファイルを作って一括でファイル名の変換をしようと思いましたが、これはこれで面倒でした。「manga_01.clip」という形式のファイル名なら、「ren manga_*.clip page00*.clip」で、まとめてファイル名を変換できます。

 でも、実は、これも一筋縄ではいきません。数字のつけ方が「01~32」ではなく「1~32」だったり、ファイル名に全角と半角が混在したりしているからです。こういうのは学部の学生も変わりません。

 そんなわけで、何かいい方法はないかな……と思って試したのがPythonを使ったファイル名の変換でした。Pythonには便利なモジュールがいろいろあるので、そんなものを使うとプログラミングも簡単になります。

 そんなワケで、こんなプログラムを作ってみました。パソコンにPythonをインストールする必要がありますが、インストールされていれば、このプログラムをファイルのあるフォルダに入れて、ダブルクリックするだけでファイル名が変換されます。

# clip_file_name_change.py
# 必要なモジュールをインポート

import os
import glob

# 同じフォルダ内のクリスタファイルを指定

files = glob.glob('./*.clip')

# フォルダ内にあるファイルの数だけ名称変更を繰り返す
# ファイルのフォーマットは「page0001.clip」の形式

for i, f in enumerate(files):
    ftitle, fext = os.path.splitext(f)
    os.rename(f, 'page' + '{0:04d}'.format(i+1) + fext)

 ちょっとしたことですが、こんなものを用意しておくと、ちょっと買い換えるだけで応用範囲は広がります。実際に、このプログラム1本で、手作業でやっていたらミスもしでかしやすい面倒な作業を一瞬で終わらせることができるようになりました。興味があったら試してみてください。MacでもPythonをインストールすれば使えるはずです。

*参考サイト:note.nkmk.me「Pythonでファイル名の前後に文字列や連番を加えて一括変更」

前ページへ