Ruby 从csv中读取一列,并使用以前的列数据创建新列
在源图像的“id”列中,目标图像中“-”id章节号之前和“-”之后的第一个数字,即目标图像中的韵文。在诗句中,我从“-”之后创建数据块。我试了几句话,但不明白我应该如何前进 我需要从csv文件中读取此数据 我想制作这个格式Ruby 从csv中读取一列,并使用以前的列数据创建新列,ruby,string,csv,Ruby,String,Csv,在源图像的“id”列中,目标图像中“-”id章节号之前和“-”之后的第一个数字,即目标图像中的韵文。在诗句中,我从“-”之后创建数据块。我试了几句话,但不明白我应该如何前进 我需要从csv文件中读取此数据 我想制作这个格式 chapter=[] 韵文=[] CSV.foreach('test_file.CSV')do|row| 如果(第[3]行!=“id”&第[3]行!=nil) 第二章我写了下面的答案。 我正在阅读内容相同的csv文件 chapter=[] 韵文=[] 温度=[] pos=0
chapter=[]
韵文=[]
CSV.foreach('test_file.CSV')do|row|
如果(第[3]行!=“id”&第[3]行!=nil)
第二章我写了下面的答案。
我正在阅读内容相同的csv文件
chapter=[]
韵文=[]
温度=[]
pos=0
CSV.foreach(“test_file.CSV”)do|行|
划船
如果(第[1]行!=“id”&第[1]行!=nil)
第0章)
否=行[1]。分区(“-”)。最后
第1节=(第1节至第1节)
更新的诗句=诗句号<10?“0”+诗句编号至:诗句编号至
插入诗句(位置,临时[位置]+“-”+更新的诗句)
为什么是“01 09-12”?它不应该是“01 09-11”和“01 12-99”吗?源图像列“id”的第一个数字是章节,第二个数字是块,如:第一行01-01,第二列01-04。然后两行的第一个01是将存储在单独列中的章节。第一行的第二个01和第二行的04将在单独的列中存储为小于第一个01-03的块1。
chapter = []
verse = []
CSV.foreach('test_file.csv') do |row|
if (row[3] != "id" && row[3] != nil)
chapter << row[3].partition("-").first
verse << row[3].partition("-").last
end
end
chapter = []
verse = []
temp = []
pos = 0
CSV.foreach("test_file.csv") do |row|
puts row
if (row[1] != "id" && row[1] != nil)
chapter << row[1].partition("-").first
if(temp.size>0)
no = row[1].partition("-").last
verse_no = (no.to_i - 1)
updated_verse = verse_no < 10 ? "0"+verse_no.to_s : verse_no.to_s
verse.insert(pos, temp[pos]+ "-" + updated_verse)
temp << no
pos = pos + 1
else
temp << row[1].partition("-").last
end
end
end
puts verse
puts chapter