【PowerShell講座】CSVデータ入出力について

女性

PowerShell講座です。

前回は、配列について紹介しました。

【PowerShell講座】配列について

2019.02.04

第5回目は、CSVデータ入出力についてです。

まず知らない方のためにCSVデータについて説明します。



CSVデータとは

CSVデータとは、コンマで区切られた非常にシンプルなデータ形式です。

データ交換用としては古くから利用されている汎用的なものです。

年賀状ソフトの住所録を移行したことがある方は聞いたことがあるのではないでしょうか。

年賀状ソフトが異なるとファイル形式が違うため移行が本来なら難しいのですが。

CSVファイルに一度変換して、新しいソフトにそれぞれの項目を関連付けて読み込むことで移行できるわけです。

CSVファイルは、Excel でも読み込むことができるので簡易データベースとしても利用できます。

オブジェクトをCSVデータに変換

まずは前回利用した連想配列でカスタムオブジェクトをつくります。

$a = [PSCustomObject]@{名前 = "ぱそた"; 性別 = "男"; 得意な言語 = "PHP"},
[PSCustomObject]@{名前 = "あどみん"; 性別 = "女"; 得意な言語 = "なし"},
[PSCustomObject]@{名前 = "じょん"; 性別 = "男"; 得意な言語 = "C言語"}

次にCSVデータに変換していきます。

オブジェクトをCSVに変換するには、ConvertTo-Csv を使います(コマンドレット)。

$b = $a | ConvertTo-Csv

ちなみに | は、パイプというものです。

実行結果を受け渡すことができます。

PowerShell の最大の特徴としてオブジェクトをパイプできるという利点がありましたが、今回が正にそれです。

実行結果は下記の通りです。

PowerShell

CSVデータをオブジェクトに変換

今度は逆に CSVデータをオブジェクトに変換します。

ConvertFrom-Csv を使います。

$c = $b | ConvertFrom-Csv

練習なんで適当な変数名でやってますが、実際はもっとわかりやすくした方が良いです。

実行結果は下記の通りです。

PowerShell

CSVファイルに書き出す

オブジェクトを CSVファイルとして書き出すことも可能です。

一番最初に生成したカスタムオブジェクト($a)を使います。

$a | Export-Csv -Path sample.csv

実行するとカレントディレクトリに sample.csv が生成されるはずです。

CSVファイルを読み込む

続いて、CSVファイルを読み込んで、変数に格納します。

$d = Import-Csv -Path ./sample.csv

実行結果は下記の通りです。

PowerShell

最後に

いかがでしょうか。

今回の内容はCSVファイルを操作したいときに色々使えそうです。

次回はオブジェクト操作について紹介します。

【PowerShell講座】オブジェクト操作について

2019.02.08

パイプを上手く活用できるように練習していきます。