CSVファイルにコメントを付けることはできますか?


203

独自の行または行の終わりに、CSV形式のファイルにコメントを許可する公式の方法はありますか?

私はこれとRFC 4180でウィキペディアをチェックしてみましたが、どちらもファイル形式の一部ではないと信じるようにする何も言及していないので、私にとっては不運であり、別のReadMe.txtファイルを使用して説明する必要がありますファイル。

最後に、自分のコメントを簡単に追加できることはわかっていますが、Excelのようなものをすぐにインポートして、コンシューマーがインポートプロセスをカスタマイズする必要がないことを望んでいました。

だから、考え?


1
何にコメントしますか?各行の値またはファイル自体?XMLファイルはあなたに代わるものですか?
Square Rig Master、

3
この提案はPythonのために打ち倒されました。
new123456 2011

2
多分、データ@SquareRigMasterのバージョン文字列。私が今やろうとしているように?
Rob Wells

@SquareRigMaster –または著作権表示。
Richard Smith

回答:


116

CSV(「標準」など)は、コメントの処理方法を規定するものではありません。いいえ、規則を確立してそれを守るのはアプリケーションの責任です。


23
RFC 4180が標準になりました。
vipw

34
RFC 4180は標準ではなく、rfc4180は次のように述べています。「このメモは、インターネットコミュニティに情報を提供します。いかなる種類のインターネット標準も指定していません。このメモの配布は無制限です。」
Paul Weibert 2014年

14
OK、私たちは事実上の標準であると言えますか?
Marco Sulla

1
すべてのRFCは、任意のインターネット標準の私の知る限りを提供することを意図していないメモされている
USR-ローカルΕΨΗΕΛΩΝ

5
うん...それは真実ではありません。標準トラックドキュメントと非標準トラック(情報)ドキュメントがあります。IETFが発行したドキュメントの説明、プロセス、ルールを含むプロセス全体は、RFC2026で定義されており、一部は修正されています。すべてのRFCは、最初にそれがどのトラックにあるかを指定します。
Steve Hole

31

エンジニアリングデータでは#、コメントを伝えるために使用される最初の列に記号が表示されるのが一般的です。

私はostermiller CSV解析ライブラリを使用して、そのようなファイルを読み取って処理します。そのライブラリでは、コメント文字を設定できます。解析操作の後、実際のデータのみを含み、コメントはない配列を取得します。


30

いいえ、CSVはコメントにタグを付ける方法を指定していません。コメントは、Excelのようなプログラムによって、テキストを含む追加のセルとして読み込まれるだけです。

管理できる最も近いもの(CSVがExcelなどの特定のアプリケーションにインポートされる)は、Excelが無視するコメントにタグを付ける特別な方法を定義することです。Excelの場合、数式に埋め込むことで、コメントを(ある程度)非表示にすることができます。たとえば、次のcsvファイルをExcelにインポートしてみます。

=N("This is a comment and will appear as a simple zero value in excel")
John, Doe, 24

それでも、数値0を表示するスプレッドシートのセルが残りますが、コメントは非表示です。

または、テキストをスペースで埋めてセルの表示部分に表示されないようにして、テキストを非表示にすることもできます。

                              This is a sort-of hidden comment!,
John, Doe, 24

コメントテキストの後にコンマを付ける必要があることに注意してください。これにより、Excelで次のセルが埋められ、セルに収まらないテキスト部分が非表示になります。

厄介なハック。これはExcelでのみ機能しますが、インポート後に出力を少し整然と見せるために十分な場合があります。


6

CSVファイルにコメントを追加する最良の方法は、「コメント」フィールドまたはレコードをデータに直接追加することだと思います。

私が使用したほとんどのCSV解析アプリケーションは、フィールドマッピングとレコード選択の両方を実装しています。したがって、フィールドのプロパティにコメントするには、フィールドの説明だけのレコードを追加します。レコードにコメントを付けるには、そのコメントの最後にフィールド(実際にはすべてのレコード)を追加します。

これらが、CSVファイルにコメントする理由として考えられるのは2つだけです。しかし、私が予測できる唯一の問題は、単一のレコードがいくつかの検証ルールを通過しない場合にファイルをまったく受け入れないプログラムです。その場合、数値フィールドの文字列タイプのフィールド記述レコードを書き込むのに問題があります。

私は決して専門家ではないので、私の理論の誤りを指摘してください。


2
AAAND、私はちょうどあなたがインポートプロセスをカスタマイズしたくなかったことを読みました。ごめんなさい。うまくいけば、誰かがこれを役に立つと思うでしょう。
タイラーマンフォード

1
良いポスト。コメントが必要な理由について私が考えることができるもう1つの理由は、ファイル全体に関するメタデータを追加することです。この情報を使用して、1つのセルだけに列全体または行全体を追加することは、少し不便に感じられます。
Ben Hershey

3

カンマ区切りファイルは、実際には単なるコンマで区切られた値で構成されたテキストファイルです。

CSVファイルの内容を定義する標準がないため、コメントを示す定義された方法はありません。CSVファイルをインポートするプログラムによって異なります。

もちろん、これは通常Excelです。Excelはどのようにコメントを定義するのでしょうか。言い換えると、CSVファイル内の行(または行の一部)をExcelが無視するのはなぜですか?私はこれを行うことは何も知りません。


2
There is no standard which defines the contents of a CSV file いいえ。
Qix-モニカは2014年

5
@Qix-参照ドキュメントのセクション2から:「CSV形式にはさまざまな仕様と実装がありますが(例:[4]、[5]、[6]、[7])、正式な仕様はありません。存在」
Alien Technology、

3

バッチファイルでFORコマンドを使用してファイルを解析している場合、セミコロンは機能します(;)

REM test.bat contents

for /F "tokens=1-3 delims=," %%a in (test.csv) do @Echo %%a, %%b, %%c

;test.csv contents (this line is a comment)

;1,ignore this line,no it shouldn't

2,parse this line,yes it should!

;3,ignore this line,no it shouldn't

4,parse this line,yes it should!

出力:

2, parse this line, yes it should!

4, parse this line, yes it should!

1
!! あなたは本当のベアフットケンボブですか?
Geoffrey Hale

2

次のようなものが必要な場合:

  │ A                              │ B
──┼────────────────────────────────┼───
1 │ #My comment, something else    │
2 │ 1                              │ 2

CSVには次の行が含まれる場合があります。

"#My comment, something else"
1,2

最初の行の「引用」に細心の注意を払ってください。

Excelウィザードを使用してテキストを列に変換するときは、「連続する区切り文字を1つとして扱う」をオンにし、区切り文字として「引用符」を使用するように設定することを忘れないでください。

したがって、Excelはテキストをコンマで分割し、「コメント」行を単一の列値として保持します(引用符は削除されます)。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.