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

今回から何回かに分けて、データを読み込み、表示するということを行なっていきましょう。
使っていくデータはこちら。
とりあえずテキストエディタで開いてみると、こんな感じです。

「年月日 時間, 温度, 湿度」というようにデータが構成されています。
このようにカンマ(,)で区切られたデータをCSV(Comma Separated Value )といいます。
ちなみに今回、テキストエディタで開いたのは意味があります。
エクセルやNumbersでは勝手にファイルを認識し、セルに分けてしまい、生の状態のデータを表示できない可能性があるからです。
データの構成を確認する際は、テキストエディタで開くようにしましょう。
と、ファイルの解説をしたのですが、今回は残念ながらまだまだデータを扱うところまで行きません。
まずはデータを扱うフォルダと最終的に出力をするフォルダを作るプログラムを書いてみます。
フォルダ階層を考える
まずはプログラムが実行された際、どのようなフォルダ階層にするか考えます。
難しそうに思えますが、簡単にいうと入力したデータと出力されたデータがごちゃごちゃにならないようにフォルダ分けするためのフォルダを準備しましょうということです。
まずはプログラムを実行する際のフォルダ構造を考えます。
とりあえずtestというフォルダにデータファイルとプログラムファイルを入れて実行すると仮定します。
ちなみに下の図は青はフォルダ、赤はファイルで示しています。

次にプログラムが終了した際のフォルダ構造を考えます。
新たにDataというフォルダとGraphというフォルダを作成し、データファイルをDataの下に移動、さらに作成したグラフファイルをGraphの下に移動するとしましょう。

例外を考える
残念ながらまだプログラミングに入りません。
ここでフォルダを作成する際の例外、つまりエラーを考えてみます。
例外に関しては最近解説をしているので、良かったらこちらもご覧ください。

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

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

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

ということでやらなければいけないのは、
- Data、Graphというフォルダがあるか確認
- フォルダがあるかないかによって処理を変える
という条件判断と、
- Data、Graphフォルダがない場合
- Data、Graphフォルダを作成する
- Data、Graphフォルダがある場合、
- そのままのフォルダを使い、フォルダ内のデータを更新
- 一度フォルダを削除し、再度作成する
ということが必要になります。
この際、1のData、Graphフォルダがない場合は作成するだけなので、特に問題になりません。
ですが、2のフォルダがある場合、フォルダをそのまま使うのか、一度削除するのか、ここは前もって決めておく必要があります。
どちらもメリット、デメリットはありますが、フォルダ内のファイルの更新でもエラーが出る可能性を考えると、一度フォルダごと削除してしまったほうがエラが出にくいと考えられます。
ということで今回は「一度フォルダを削除し、再度作成する」方法を取りましょう。
早速プログラミングにいきましょう!としたいところですが、まだまだ長丁場ですので、今回はここまで。
次回はフォルダの確認と作成(再作成)の部分をプログラミングしていきます。

ということで今回はこんな感じで。
コメント