Python実践開発入門 これから開発するコードについて

ではさっそく実際にコードを書いて開発を進めていきましょう。前記事で述べたとおり、テキストファイルを集計して結果をコンソールに出力する簡単なコードを作成します。

ある案件で以下のような要求があったとします。

  • 複数の数値データが改行コード区切り(\n)で格納されたUTF-8のテキストファイルがある
  • ユーザがスクリプトを実行すると、そのファイルのデータの中で業務上の閾値100を超えているデータの件数を集計して表示する
  • 入力ファイルのパスはユーザーが引数で入力して指定する

これだけだと解りづらいかもしれませんので動作例で解説します。
例えば、以下のような入力ファイルがあったとします。

入力ファイル:data.txt

98
88
100
120
78
78
121
101
83
64
105

ユーザーが実行する場合、コマンドライン引数にファイルパスを指定して実行します。

python main.py data.txt

このとき集計結果は120、121、101、105の4つが対象なので出力は以下のように出力されることになります。

4

早速コードを作成してみましょう。とりあえずですが以下のようなコードが考えられます。

import sys

args = sys.argv

def main():
    print("処理を開始します。")
    input_file = args[1]

    with open(input_file, "r") as f1:
        text = f1.read()
        data_list = text.split("\n")

        result_count = 0
        for row in data_list:
            value = int(row)
            if value > 100:
                result_count += 1

    print(result_count)

if __name__ == '__main__':
    main()

人によっては数分で書けるようなスクリプトです。クラウドソーシング等で発注をかけると1~数千円で発注できるのではないでしょうか。一方、ベンダーによっては十万円を超えるような価格帯になります。

個人や少人数で使用する使い捨てのスクリプトであれば上記のプログラムでも全く問題ないのですが、実際にプロダクトとして使用するものを開発する場合は様々な考慮が必要となります。

上のスクリプトに不足しているかもしれない考慮すべき点を次回から解説します。