我有一個ruby腳本,它將通過從另一個文件中獲取和合並值來創建兩個文件。沒有隱式轉換爲零字符串錯誤
#Resources
require 'rubygems'
require 'csv'
col_date = []
col_constant1 = []
col_constant2 = []
col_appYear = []
col_statsDesc = []
col_keyStats =[]
col_weeklyTotal=[]
weekly_total = []
fname = "finalStats.csv" #variable for capture file
finalStatsFile = File.open(fname, "w") #write to capture file
fname2 = "weeklyStats.csv"
weeklyStatsFile = File.open(fname2, "w")
CSV.foreach('compareData.csv', converters: :numeric) do |row|
weekly_total << row[0] - row[1]
weekly_total.each do |data|
data << weekly_total.shift
weeklyStatsFile.puts data
end
end
#retrieve stats from original document
CSV.foreach("autoCapture.csv") {|row| col_date << row[0]}
CSV.foreach("autoCapture.csv") {|row| col_constant1 << row[1]}
CSV.foreach("autoCapture.csv") {|row| col_appYear << row[2]}
CSV.foreach("autoCapture.csv") {|row| col_statsDesc << row[3]}
CSV.foreach("autoCapture.csv") {|row| col_constant2 << row[4]}
CSV.foreach("autoCapture.csv") {|row| col_keyStats << row[5]}
CSV.foreach("weeklyStats.csv") {|row| col_weeklyTotal << row[0]}
col_date.zip(col_constant1, col_appYear, col_statsDesc, col_constant2, col_keyStats, col_weeklyTotal).each do |col_date, col_constant1, col_appYear, col_statsDesc, col_constant2,
col_keyStats, col_weeklyTotal|
finalStatsFile.puts col_date+", "+col_constant1+", "+ col_appYear+", "+col_statsDesc+", "+col_constant2+", "+col_keyStats+", "+col_weeklyTotal
end
在一個文件I希望減去行的值[1]從行的值[0]來創建一個新的「weekly_total」值。然後,我將這個值的數組輸出到名爲weeklyStats.csv的文件中。這會輸出一列值很好的值。
不過,我想從另一個文件(autoCapture.csv)聯同另一組這些值,當我嘗試壓縮它們爲數組,使他們在相應的行讀取流過我的錯誤:
weeklyStats_csv.rb:42:in `+': no implicit conversion of nil into String (TypeError)
from weeklyStats_csv.rb:42:in `block in <main>'
from weeklyStats_csv.rb:40:in `each'
from weeklyStats_csv.rb:40:in `<main>'
我收集這意味着,如果其中一個值爲零,因此數組zip不會捕獲異常,因此不能轉換爲字符串。問題是,我已經嘗試將weekly_total轉換爲字符串和數組,因爲我認爲它可能是問題(類型不匹配),但我不知道從哪裏去。誰能幫忙?在串
finalStatsFile.puts col_date+", "+col_constant1+", "+ col_appYear+", "+col_statsDesc+", "+col_constant2+", "+col_keyStats+", "+col_weeklyTotal
刪除尾隨欄|在第42行'。 – mudasobwa
感謝您回覆我。不幸的是,這沒有奏效,我想我需要那個|以包含與集合 –
關聯的變量(在本例中爲數組),對不起,我沒有意識到這些是前一個字符串的一部分。然後只需從上一行刪除回車。 – mudasobwa