我有一个看起来像这样的方法:
def extract_websites
websites = []
csvs = Dir["#{@dir_name}/#{@state}/*.csv"]
csvs.each do |csv|
CSV.foreach(csv, headers: true) do |row|
websites << row['Website']
end
end
websites.uniq!
end
但我需要做的是打开每个CSV文件,我想检测该文件的名称。
我该怎么做?
答案 0 :(得分:1)
在您的示例中,变量csv
包含CSV文件的路径。
该子变量在其子节点中可用,它与其范围相同但不向上。
所以:
def extract_websites
websites = []
csvs = Dir["#{@dir_name}/#{@state}/*.csv"]
csvs.each do |csv|
puts File.expand_path(csv) # show the full path for each csv file
CSV.foreach(csv, headers: true) do |row|
puts csv # shows unexpanded path for each row of a csv
websites << row['Website']
end
end
websites.uniq!
end
应该打印出每个CSV文件和每个row
的路径。