【要約】「列名を入力してください」をやめたら、ツールが実務で使えるようになった [Zenn_Python] | Summary by TechDistill
> Source: Zenn_Python
Execute Primary Source
// Problem
Python初心者が作成したExcel分割ツールにおいて、実務での利用に耐えられないUX上の課題に直面した。当初はコードへのハードコードや、自由入力による列名指定を行っていたが、以下の問題が発生した。
- ・列名の打ち間違い(KeyError)の発生。
- ・Excel特有の末尾スペース等の不可視文字による不一致。
- ・ファイル名に使用できない禁止文字による実行時エラー。
// Approach
ユーザーに「文字列を入力させる」のではなく、「プログラムが提示した選択肢から番号を選ばせる」アプローチを採用した。具体的な解決ステップは以下の通りである。
- ・
df.columnsから列名リストを取得し、enumerateで番号付き一覧を表示。 - ・
while Trueループとisdigit()を用いた、数値入力のバリデーションと再試行処理の実装。 - ・
replaceメソッドによる、ファイル名に使用不可能な禁止文字(\/:*?"<>|)の置換処理。
// Result
ツールの改善により、ユーザーの入力負荷とエラー発生率を劇的に低減させた。主な成果は以下の通りである。
- ・列名を事前に把握する必要がなくなり、作業フローが簡略化された。
- ・文字列の突き合わせが発生しないため、末尾スペース等の問題が解消された。
- ・不正なファイル名によるクラッシュを防ぎ、実務で継続利用可能なツールへと昇華した。
Senior Engineer Insight
> 本記事は「動くコード」と「使えるツール」の境界を明確に示している。大規模システムでも、外部入力のバリデーションと副作用の防止は基本だ。ユーザーの認知負荷を下げ、エラーを構造的に防ぐ設計は、運用コスト低減に直結する。