コンテンツにスキップ

CSV/TSV/Textファイル

CSV、TSV、テキストファイルを読み込むときに使える設定を説明します。ファイルタイプで csv/tsv/text を選んでいるときだけ出る項目です。

対応ファイル形式

拡張子中身
.csvカンマで列を区切った表形式のファイル
.tsvタブで列を区切った表形式のファイル
.txt区切り文字を指定すれば表形式として読めるファイル
.whdアンダースコア(_)で列を区切ったファイル

圧縮したまま置いてある .gz / .bz2 / .zip も、解凍せずにそのまま読めます。読めるのはこの 3 つだけです。 .xz や .7z のように別の形式で固めたファイルは、解凍してから置き直してください。

サポートされていない圧縮形式のファイルです。gzip (.gz)、bz2 (.bz2)、zip (.zip) のいずれかの形式をご利用ください。対象ファイル:{{path}}

設定項目

3 つともチェックボックスで、既定では OFF です。 OFF のままなら nehan が推定するので、うまく読めなかったときだけ ON にします。

区切り文字を指定する
ON にすると区切り文字の欄が出ます。一覧から選ぶのではなく、自分で打ちます。タブ区切りなら \t と入れます。はじめは空で、空のままだと読み込み・保存・読み込んで保存のどれも押せなくなります(画面には理由が出ないので、「ボタンが灰色のまま」になったらここを見てください)。
文字コードを指定する
ON にすると文字コードの欄が出ます。こちらも自分で打ちます。はじめから cp932 が入っていて、utf8 / cp932 / euc-jp などに書き換えられます。
圧縮形式を指定する
ON にするとファイルの圧縮タイプの欄が出ます。こちらは一覧から選びます。選べるのは拡張子から自動判別 / なし / zip / gzip / bz2 の 5 つで、はじめは zip が選ばれています。

OFF のままだと何を見て決まるか

設定OFF のときの決まり方
区切り文字拡張子で決まります。 .tsv はタブ、.whd はアンダースコア、それ以外はカンマです。中身は見ません
文字コードファイルの先頭 8KB を読んで判定します。 Shift_JIS と判定されたものは cp932 として読みます。判定できないときは utf8 になります。圧縮したファイルは中身を見ずに utf8 扱いになります(解凍前の 8KB は字として読めないため)
圧縮形式拡張子で決まります。 .gz は gzip、.bz2 は bz2、.zip は zip、どれでもなければ圧縮なしです

このファイルタイプで出る項目

項目出るか
区切り文字を指定する / 文字コードを指定する / 圧縮形式を指定する出る
読み込む列を指定する出る
先頭から行数をスキップし以降を読み込む出る
各ファイルから読み込む行数を指定する出る
1行目を列名として扱う出る(既定は ON)
列にファイル名を追加する / 列にフォルダ名を追加する出る
列にシート名を追加する出ない(Excel だけ)
シート選択方法出ない(Excel だけ)

エラーと対処

空のファイルが混ざっていた

中身が 0 バイトのファイルを読もうとしたときに出ます。

空のファイルは読み込めません。除外して再読み込みしてください。対象ファイル: {{path}}

直し方 — 文面の末尾に出ているファイルを選び直しから外してください。複数ファイル一括読み込みでまとめて指定しているときは、空のファイルが 1 つあるだけで全体が止まります。

読めない拡張子が混ざっていた

読み込み形式に csv/tsv/text を選んでいるのに、ほかの形式のファイルが混ざっているときに出ます。

csv以外のファイルが含まれています。許可されている拡張子は、.csv, .txt, .tsv, .bz2, .gz, .zip, .whd です。

直し方 — 混ざっているファイルを外すか、読み込み形式を合わせてください。.xlsx を読みたいなら Excelファイルです。

文字コードが合っていない

文字コードを指定するで入れた文字コードでは読めない字が入っていたときに出ます。

指定した文字コード({{encoding}})で読み込めない文字が含まれていました。別の文字コードをお試しください。

直し方 — Excel から保存した CSV なら cp932、それ以外は utf8 を試してください。文字コードを指定するを OFF に戻せば nehan が推定します。

列の数が行によって違う

区切り文字の数が行ごとに食い違っているときに出ます。

ファイルに問題があります。{{expected_fields}}列のデータのはずですが、{{line}}行目が{{saw}}列に見えます。対象ファイル: {{path}}

直し方 — 文面に出ている行を見てください。値の中にカンマが入っていて引用符で囲まれていない、という形がほとんどです。区切り文字を指定するで別の区切りに変えられる場合もあります。

指定した圧縮形式と中身が合っていない

圧縮形式を指定するで選んだ形式では開けなかったときに出ます。

読み込みオプション「圧縮タイプ」でzipが指定されていますが、読み込まれたデータがzipファイルではありません。設定を変更して再読み込みしてください。

直し方 — 実際の形式を選び直すか、圧縮形式を指定するを OFF にして拡張子から判別させてください。zip / gzip / bz2 のどれでも同じ形の文面が出ます。

zip の中にファイルが複数ある

複数ファイルが含まれているzipファイルは読み込めません。zipを解凍してから読み込んでください。

直し方 — zip を解いて、ファイルを個別に置いてください。複数まとめて読みたいときは複数ファイル一括読み込みを使います。

パスワードが付いている

パスワード付きのファイルは読み込めません。パスワード解除後のファイルをアップロードしてください。対象ファイル:(パス)

直し方 — パスワードを外したファイルを置き直してください。

ある行の形が崩れている

ファイルに問題があります。(行番号)行目に異常がありそうです。

直し方 — 文面に出ている行を開いて、区切り文字や引用符が閉じているかを確かめてください。

先頭のあたりが読めない

列名の行と中身の行の形が合っていないときに出ます。

ファイルに問題があります。1, 2行目あたりをご確認ください。 対象ファイル: {{path}}

直し方 — 先頭に説明行が入っていないか確かめて、入っているなら先頭から行数をスキップし以降を読み込むで読み飛ばしてください。

よく使う例

1. Excel から保存した CSV が文字化けする

見るところ中身
お題社内で作った売上の CSV を開くと、列名が記号の並びになる
入力sales.csv(Excel で「CSV(カンマ区切り)」として保存したもの)
設定文字コードを指定するを ON にし、文字コードを cp932 のままにする
出力列名が「商品名」「売上」と読める

2. タブ区切りのファイルが 1 列になってしまう

見るところ中身
お題基幹システムから出したタブ区切りのファイルが、拡張子 .txt のまま届く
入力export.txt(列の区切りはタブ)
設定区切り文字を指定するを ON にし、区切り文字に \t と入れる
出力1 列だったものが、列ごとに分かれる

3. セミコロン区切りのファイルを読む

見るところ中身
お題海外の取引先から届くファイルの区切りがセミコロン
入力orders.csv(id;name;amount の形)
設定区切り文字を指定するを ON にし、区切り文字に ; と入れる
出力id / name / amount の 3 列として読める

4. 圧縮したまま置いてあるログを読む

見るところ中身
お題日次ログが .csv.gz で置いてあり、解凍せずに読みたい
入力node_log/2024-01-01.csv.gz など
設定何も変えない(圧縮形式を指定するは OFF のまま)
出力拡張子から gzip と判定され、そのまま読み込まれる

関連