あなたはCSV( "カンマ区切り")ファイルを読み込むため、既存のCSVクラスを使用しています。 CSVファイルには、ナイーブなsplit
が処理できない特殊なケースがたくさんあります。
ドキュメントには、ファイルや文字列の読み書き方法に関するさまざまな例があります。ファイルから一度にラインを読み取るためのthe documentationから例えば
、:あなたのコードで
CSV.foreach("path/to/file.csv") do |row|
# use row here...
end
問題がある:ファイルオーバー
f.each_line do |line|
line.split(",")
end
each_line
反復しますeach
ブロックを使用して読み取られます。
line.split(",")
は値を分割しますが、何もしませんので、結果は破棄されます。あなたは結果を変数に割り当てるか、結果の配列を反復処理することができます:
foo = line.split(",")
# do something with foo
か:
line.split(",").each do |i|
# do something with i
end
しかし、再び、CSVの仕様はとてもsplit
に頼る前によく考えて簡単ではありません。たとえば、次の行は有効なCSVです:
this,"is,some,CSV",data
として解析される必要があります:それは間違っているので、そこに、
をして:誤って生成します
["this", "is,some,CSV", "data"]
けどsplit(",")
余分なクリーンアップが必要になります。
split
は、カンマ区切りの値の単純なセットでは安全と思われるので、上記のような状況に陥るまですべてが安全だと思うようになります。
あなたのプログラムには何も出力されないので、あなたは何を期待するのか分かりません。 [mcve]と問題のより良い説明を記入してください。 –
コンマ区切り値(CSV)ファイルを読み込んでいます。既存の[CSV](https://ruby-doc.org/stdlib-2.4.1/libdoc/csv/rdoc/CSV.html)クラスを使用してください。 CSVファイルはシンプルに見えますが、シンプルで素朴な 'split'が処理できない特殊なケースがいくつかあります。 –