1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

日本語プログラミング言語「なでしこ」Advent Calendar 2021

Day 16

「なでしこ3」でCSVファイルを読む

Last updated at Posted at 2021-12-15

バッチ処理で使う多くの場面で、CSVが利用されます。経理処理から機械学習まで、CSVはデータ処理の基本です。そこで、なでしこ3PC版(Node.js)版で、CSVファイルを読む方法をまとめてみます。

まずは結論から

日本で流通する多くのCSVファイルはShift_JIS形式です。そこで、SJISファイル読むを使って、Shift_JISのファイルを読み込み、CSV取得でなでしこの配列形式に直して何か処理を行って表CSV変換でCSVに戻してSJISファイル保存でファイルに保存します。

CSV処理.nako3
!「plugin_csv」を取り込む。
# CSVファイルを読み込む
「入力_sjis.csv」をSJISファイル読んで、CSV取得して、データに代入。
# 何かしらの処理 - ここでは抽出
データの0から「ケーキ」を表ピックアップして抽出データに代入。
# CSVファイルへ保存
抽出データを表CSV変換して、「出力_sjis.csv」へSJISファイル保存。

それぞれの命令の使い方

上記で使った命令の意味と、マニュアルへのリンクを以下に列挙します。

CSV処理に関して - CSV取得と反復の組み合わせ

CSVに対して何か処理したい場合、列ごとに処理を行うことになります。例えば、先頭列に顧客の名前が書かれており「様」を付けたい場合などは、以下のように書けるでしょう。

様追加.nako3
CSV=「加藤,300
佐藤,200
田中, 250」
O=CSVをCSV取得
Oを反復
  対象[0]=対象[0]&「様」
ここまで。
Oを表CSV変換して表示。

上記を実行すると以下のような結果が得られます。

加藤様,300
佐藤様,200
田中様,250

バリエーション - SJISファイルの読み込みに関して

なお、SJISファイル読むを使わずに、バイナリ読むを使ってファイルを読み込み、SJIS取得でShift_JISの文字列をなでしこの内部形式Unicodeに変換できます。

SJISデータ読む.nako3
「test_sjis.txt」をバイナリ読んで、SJIS取得して、Sに代入。
Sを表示。

まとめ

CSVファイルの読み書きは、バッチ処理の基本の基本なので、しっかり押さえておきましょう!

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?