在 ruby?? 3.1.2 中,我有這個 csv 檔案:
make,model,color,doors,email
dodge,charger,black,4,practice1@whatever.com
ford,focus,blue,5,practice2@whatever.com
nissan,350z,black,2,practice3@whatever.com
mazda,miata,white,2,practice4@whatever.com
honda,civid,brown,4,practice5@whatever.com
corvette,stingray,red,2,practice6@whatever.com
ford,fiesta,blue,5,practice7@whatever.com
bmw,m4,black,2,practice8@whatever.com
audi,a5,blue,2,practice9@whatever.com
subaru,brz,black,2,practice10@whatever.com
lexus,rc,black,2,practice11@whatever.com
我當前的程式允許用戶輸入一封電子郵件,然后從該電子郵件中轉到該行并更改汽車型號的值,然后將 csv 列印到螢屏上。可以做些什么來使代碼也更新目錄中的實際 CSV 檔案?
這是我的代碼:
require "csv"
csv = CSV.read('cars.csv', headers: true)
print "Enter an email: \n> "
demo = gets.chomp
#print csv.find {|row| row['email'] == demo}
got = csv.find {|row| row['email'] == demo}
p got
p got.fields
p got['model']
got['model'] = 'rcf'
p got['model']
p got.fields
#prints out the csv file
puts csv.to_s
如果我的編碼方法不同,并且如果有更好的方法,請毫不猶豫地更改我的任何編碼或完全不使用它并走另一條路,請評論代碼
uj5u.com熱心網友回復:
請參考以下內容供您參考:
csv = CSV.read('cars.csv', headers: true)
print "Enter an email: \n> "
demo = gets.chomp
csv.map{|row| row['model'] = 'rcf' if row['email'] == demo}
puts csv.to_s
CSV.open("cars.csv", "wb") do |new_csv|
new_csv << %w[make model color doors email]
csv.each do |row|
new_csv << row
end
end
我希望這能幫到您。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/516603.html
標籤:红宝石CSV
上一篇:包含模塊Ruby上的未定義方法
下一篇:Ruby:在目錄中查找檔案
