我試圖打開一個CSV文件,查找一個字符串,然後返回csv文件的第二列,但只有第一個實例它。我已經得到了以下內容,但不幸的是,它返回每個實例。我有點失意。試圖找到CSV中使用fastercsv的字符串的第一個實例
紅寶石的神可以幫助嗎?非常感謝。
中號
這個例子的目的,讓我們說names.csv與下列文件:
foo, happy
foo, sad
bar, tired
foo, hungry
foo, bad
#!/usr/local/bin/ruby -w
require 'rubygems'
require 'fastercsv'
require 'pp'
FasterCSV.open('newfile.csv', 'w') do |output|
FasterCSV.foreach('names.csv') do |lookup|
index_PL = lookup.index('foo')
if index_PL
output << lookup[2]
end
end
end
OK,所以,如果我想返回FOO的所有實例,但在csv中,那麼這是如何工作的? 所以我想作爲一個結果是快樂,悲傷,飢餓,不好。我認爲這將是:
FasterCSV.open('newfile.csv', 'w') do |output|
FasterCSV.foreach('names.csv') do |lookup|
index_PL = lookup.index('foo')
if index_PL
build_str << "," << lookup[2]
end
output << build_str
end
end
,但它似乎沒有工作
你有沒有考慮過使用'grep'和'cut'?例如'grep'foo'| cut -d,-f2' – buruzaemon
'foo'是否改變或者是靜態的?,你可以粘貼names.csv –
的示例代碼片段嗎?是的,已經考慮過grep + cut,但它是更大程序的一部分。另外,foo將被一個變量變量替換,但爲了達到這個目的,我們可以假定它只是字符串foo。 (謝謝) – MarkL