Pythonで温度・湿度ロガー IBS-TH1 PLUSのデータを分析してみる その1:フォルダ構成を考える

スポンサーリンク

Comma Separated Valueのおさらい

前に温度・湿度ロガー IBS-TH1を導入し、CSVファイルとして保存できるようにしました。

温度・湿度ロガーで温度を自動測定・記録してみる Inkbird IBS-TH1 PLUS その2
Engbird Appのダウンロード前回、Inkbird IBS-TH1 PLUSを購入し、開封の儀を行いました。とりあえず電源が入ったのを確認したのですが、それだけではただの温湿度計。データをロギングでき...

今回から何回かに分けて、データを読み込み、表示するということを行なっていきましょう。

使っていくデータはこちら。

とりあえずテキストエディタで開いてみると、こんな感じです。

「年月日 時間, 温度, 湿度」というようにデータが構成されています。

このようにカンマ(,)で区切られたデータをCSV(Comma Separated Value )といいます。

ちなみに今回、テキストエディタで開いたのは意味があります。

エクセルやNumbersでは勝手にファイルを認識し、セルに分けてしまい、生の状態のデータを表示できない可能性があるからです。

データの構成を確認する際は、テキストエディタで開くようにしましょう。

と、ファイルの解説をしたのですが、今回は残念ながらまだまだデータを扱うところまで行きません。

まずはデータを扱うフォルダと最終的に出力をするフォルダを作るプログラムを書いてみます。

スポンサーリンク

フォルダ階層を考える

まずはプログラムが実行された際、どのようなフォルダ階層にするか考えます。

難しそうに思えますが、簡単にいうと入力したデータと出力されたデータがごちゃごちゃにならないようにフォルダ分けするためのフォルダを準備しましょうということです。

まずはプログラムを実行する際のフォルダ構造を考えます。

とりあえずtestというフォルダにデータファイルとプログラムファイルを入れて実行すると仮定します。

ちなみに下の図は青はフォルダ、赤はファイルで示しています。

次にプログラムが終了した際のフォルダ構造を考えます。

新たにDataというフォルダとGraphというフォルダを作成し、データファイルをDataの下に移動、さらに作成したグラフファイルをGraphの下に移動するとしましょう。

スポンサーリンク

例外を考える

残念ながらまだプログラミングに入りません。

ここでフォルダを作成する際の例外、つまりエラーを考えてみます。

例外に関しては最近解説をしているので、良かったらこちらもご覧ください。

Pythonの例外処理(try, except) その1: 基本的な使い方
例外処理とは?今回はPythonで例外処理の方法を解説していきたいと思います。まずは例外処理という言葉は馴染みがないので、言葉の解説から始めていきたいと思います。プログラムを実行した時、起きるのは「正常終了」か「異...

毎回、開始時点のフォルダ構造、つまりこのフォルダ構造であれば、意図したフォルダ構造からプログラムは実行されるので例外は起きないでしょう。

しかし一度解析したデータを再度解析する場合は、プログラムが終了したフォルダ構造、つまりこういうフォルダ構造になっています。

ここで再度、DataとGraphというフォルダを作ろうとするとエラーが起きてしまいます。

フォルダの作成に関して、また同じ名前のフォルダを作成しようとした場合のエラーは、こちらの記事で解説しています。

Pythonのosモジュールによるフォルダ間移動とファイル名取得 〜絶対パスと相対パスの違いを添えて〜
フォルダ間移動前にcsvファイルの書き込みに関して説明しました。その際はプログラムと読み込むファイルは同じフォルダにある必要があり、また新規作成されるファイルは同じフォルダに作成されました。しかしプログラムとファイ...

ということでやらなければいけないのは、

  1. Data、Graphというフォルダがあるか確認
  2. フォルダがあるかないかによって処理を変える

という条件判断と、

  1. Data、Graphフォルダがない場合
    • Data、Graphフォルダを作成する
  2. Data、Graphフォルダがある場合、
    • そのままのフォルダを使い、フォルダ内のデータを更新
    • 一度フォルダを削除し、再度作成する

ということが必要になります。

この際、1のData、Graphフォルダがない場合は作成するだけなので、特に問題になりません。

ですが、2のフォルダがある場合、フォルダをそのまま使うのか、一度削除するのか、ここは前もって決めておく必要があります。

どちらもメリット、デメリットはありますが、フォルダ内のファイルの更新でもエラーが出る可能性を考えると、一度フォルダごと削除してしまったほうがエラが出にくいと考えられます。

ということで今回は「一度フォルダを削除し、再度作成する」方法を取りましょう。

早速プログラミングにいきましょう!としたいところですが、まだまだ長丁場ですので、今回はここまで。

次回はフォルダの確認と作成(再作成)の部分をプログラミングしていきます。

Pythonで温度・湿度ロガー IBS-TH1 PLUSのデータを分析してみる その2:フォルダの確認・作成&再作成
インポートとパスの確認前回、温度・湿度ロガーのデータ分析のため、フォルダ構造を考えてみました。フォルダ構造が決まったので、今回はこの部分のプログラミングをしてみましょう。まずは今回使うosモジュールとshu...

ということで今回はこんな感じで。

コメント

タイトルとURLをコピーしました