制作物のエビデンスをスクリーンショットで残すプロジェクトはままあります。 スクリーンショットのファイル名も連番にするようにと指定があると面倒です。
退屈なことはPythonにやらせようということでリネームするスクリプトを作成しました。
環境
- Python3.7
- Windoes10
仕様
エクセルの試験書に合わせてスクリーンショットをまとめていく。
.\\{シート名}\\{項目番号}\\{項目番号}_{連番}.png
このようなルールで採番したファイル名とする。
項番毎にフォルダがあり、その中に関連するスクリーンショットを入れる。
スクリーンショットは{項目番号}_{連番}.png
の名前とする。
.\\機能1\\11\\11_1.png
.\\機能1\\12\\12_1.png
.\\機能1\\12\\12_2.png
.\\機能1\\13\\13_1.png
.\\機能1\\13\\13_2.png
.\\機能1\\13\\13_3.png
ソースコード
フォルダ構成を整え、スクリーンショットをフォルダに突っ込んだ後に一括処理する。
import os
import glob
# シート名
root_dir = '.\\機能1\\'
# 項番のディレクトリを取得
dir_list = glob.glob(root_dir + '*')
for no in dir_list:
# 項番のディレクトリを取得
file_list = glob.glob(no + '\\*.png')
# スクリーンショットの取得順に応じてソート
file_list.sort()
for i, path in enumerate(file_list):
# path = '.\\機能1\\7\\Screenshot_20190306-180830.png'
arr = path.split('\\')
# arr = ['.', '機能1', '7', 'Screenshot_20190306-180830.png']
arr[3] = f'{arr[2]}_{str(i+1)}.png'
new_path = '\\'.join(arr)
print(new_path)
# .\15\7\7_1.png
# リネーム
os.rename(path, new_path)
コメント通りに処理をしています。
- globはディレクトリ内のファイルやフォルダ名をリスト化
os.rename(path, new_path)
でリネーム
正直、もっと上手い書き方があるがこれで事足りたので良しとする。
エビデンスについて
正直エビデンスを残すため作業は徒労感があり嫌いだ。 膨大なスクリーンショットやテストケースの試験書はお客さんもすぐには見ていない。
それでも、試験書とエビデンスを残す意味はある。 問題があればその個所を確認して判断できる。
自動化したテスト結果で十分かもしれない。 ただ、日本語でまとめられた試験項目と一目でわかるスクリーンショットは、ITに疎い発注側でも理解しやすい利点がある。
上手くまとまらなかったので、下記の記事に主張は任せる。
Python:ファイルダウンロードの進行状況とファイルサイズを表示する方法。urllib
Pythonschedule2024-02-27
【Python】tqdmでforの進捗状況を表示する
PythonColabolatoryschedule2021-02-16
学習済みの日本語単語ベクトルをColabolatoryで試してみる
自然言語処理PythonColabolatoryschedule2021-02-04
Unity ML-Agentsで新しく学習環境を作る
Unity機械学習C#PythonDeepLearningschedule2021-01-22
27. 内部リンクの除去
自然言語処理100本ノックPythonschedule2020-03-17