2017-06-20 119 views
0

我目前有這個腳本可以根據給定的CSV生成用戶名。如何將這些結果打印到控制檯,而不是將這些結果寫入新的CSV?從Ruby結果生成CSV

這是我目前擁有的腳本,沒有錯誤地運行。我假設我是否在do | row |中寫入新的CSV阻止它將創建x數量的我不想要的新文件。

require 'csv' 

CSV.foreach('data.csv', :headers => true) do |row| 
    id = row['id'] 
    fn = row['first_name'] 
    ln = row['last_name'] 
    p fn[0] + ln + id[3,8] 
end 
+1

_Sidenote:_ **從來沒有**使用'+'在Ruby中連接字符串,這是一種代碼異味。 – mudasobwa

回答

3

只是管理的CSV文件讀取周圍寫:

CSV.open("path/to/file.csv", "wb") do |csv| 
    CSV.foreach('data.csv', :headers => true) do |row| 
    id = row['id'] 
    fn = row['first_name'] 
    ln = row['last_name'] 
    csv << [fn[0], ln, id[3,8]] 
    # or, to output it as a single column: 
    # csv << ["#{fn[0]}#{ln}#{id[3,8]}"] 
    end 
end 

Writing CSV to a file

+0

而不是它輸出到三個不同的列如何才能使它,因此它是一個字符串?我嘗試用加號替換逗號,但得到一個零錯誤。 –

+2

已更新答案::使用字符串插值。 – mudasobwa