如何使用Ruby 2.2.2将列附加到现有CSV
编辑:我不需要使用相同的文件。可以创建一个新文件。我需要的是结果包含与原始列和新列相同的列和行,但顺序相同。 我一直试图用Ruby将列附加到现有的CSV文件中,但我遇到了一个错误,我不理解它。这是我的密码:如何使用Ruby 2.2.2将列附加到现有CSV,ruby,csv,Ruby,Csv,编辑:我不需要使用相同的文件。可以创建一个新文件。我需要的是结果包含与原始列和新列相同的列和行,但顺序相同。 我一直试图用Ruby将列附加到现有的CSV文件中,但我遇到了一个错误,我不理解它。这是我的密码: CSV.foreach("test.csv", "a+") do | row | c = Curl::Easy.perform("http://maps.googleapis.com/maps/api/geocode/json?latlng=#{row[1]},#{row[0]}&s
CSV.foreach("test.csv", "a+") do | row |
c = Curl::Easy.perform("http://maps.googleapis.com/maps/api/geocode/json?latlng=#{row[1]},#{row[0]}&sensor=false")
result = JSON.parse(c.body_str)
if result['status'] != 'OK'
sleep(5)
else
row << result['results'][0]['formatted_address']
result['results'][0]['address_components'].each do | w |
row << w['short_name']
end
end
但这也不起作用
我错过了什么?谢谢 为什么不尝试用不同的模式打开文件 看起来这就是你要找的:
CSV.open('test.csv', 'r+') do |row|
row << ['existing_header1','existing_header2','new_header']
end
CSV.open('test.CSV','r+')do|行|
行<代码>行
是从CSV文件读取的内部表示形式。对它的修改不会影响原始CSV源。您需要打开另一个CSV文件进行写入,并在修改后将行写入该文件。这就是你所缺少的吗?我想会有办法修改当前的文档。在文档中,情况似乎是这样,但我无法确定……就地编辑文件似乎已经包含在其中,并且有两个很好的答案。可能重复,但两个答案都涉及到编辑文件而不是CSV。我使用的是CSV类,这不是不同的方法吗?
CSV.open('test.csv', 'r+') do |row|
row << ['existing_header1','existing_header2','new_header']
end