रूबी के CSV
वर्ग यह बहुत आसान प्रत्येक पंक्ति से अधिक पुनरावृति करने के लिए बनाता है:रुबी में सीएसवी पढ़ने पर मैं हेडर पंक्ति को कैसे छोड़ सकता हूं?
CSV.foreach(file) { |row| puts row }
बहरहाल, यह हमेशा शीर्षक पंक्ति शामिल हो, तो मैं आउटपुट के रूप में मिल जाएगा:
header1, header2
foo, bar
baz, yak
मुझे नहीं पता हालांकि हेडर चाहते हैं। अब, जब मैं फोन ...
CSV.foreach(file, :headers => true)
मैं इस परिणाम मिलता है:
#<CSV::Row:0x10112e510
@header_row = false,
attr_reader :row = [
[0] [
[0] "header1",
[1] "foo"
],
[1] [
[0] "header2",
[1] "bar"
]
]
>
बेशक
, क्योंकि प्रलेखन कहते हैं:
यह सेटिंग #shift सीएसवी के रूप में पंक्तियों को वापस करने के लिए कारण बनता है: : Arrays के बजाय पंक्ति वस्तुओं
लेकिन, कैसे कर सकते हैं मैं हेडर पंक्ति को छोड़ देता हूं, पंक्ति को एक साधारण सरणी के रूप में वापस कर रहा हूं? मैं जटिल CSV::Row
ऑब्जेक्ट को वापस नहीं करना चाहता हूं।
मैं निश्चित रूप से ऐसा करने के लिए नहीं करना चाहती:
first = true
CSV.foreach(file) do |row|
if first
puts row
first = false
else
# code for other rows
end
end
जांचें http://stackoverflow.com/a/37856698/473040 – equivalent8