Dear all,
My script tried to read from one original tsv file and distribute into
new multiple tsv files.
Each line of the original file is like this: time_1, signal_1, time_2,
signal_2... time_4096, signal_4096.
I would like to write them into file_1, file_2, ... file_4096
accordingly, and these files contain time_1, signal_1; time_2, signal_2;
... time_4096, signal_4096 separately.
My script did well only if the original file contains ONE line.
If the original file has two or more lines, the error message like
following,
new_split.rb:17: undefined method `+' for nil:NilClass (NoMethodError)
By tracing the output, I found it seemed the script just read ONE line,
since the put results like this :
........(omitted a lots of lines here)
8182
"4.08963252844486E+00"
"-2.3E-03"
8184
"4.09063219413236E+00"
"-3.1E-03"
8186
"4.09163185987611E+00"
"-7E-04"
8188
"4.09263152560423E+00"
"-3.7E-03"
8190
"4.09363119136048E+00"
"3.6E-03"
8192
nil
nil
And my script is like this:
@a =
@itemnum = 4096
@counter = 0
@linenum = 10
File.open("../original_data/test_2lines.tsv").each_line
do |record| # "^M"
#File.open("../original_data/one_line.tsv").each_line do
record>
@a = record.chomp.split("\t")
@itemnum.times do |n|
File.open("#{n}_debug_split"+".tsv" , "w") do |f|
puts @counter
puts @a[@counter].inspect + "\n"
puts @a[@counter+1].inspect + "\n"
f << @a[@counter] + "\t" + @a[@counter+1] + "\n"
@counter += 2
end
end
end
Thanks a lot for your comments in advance !
Junhui
BTW, at the end of each line in original tsv file, this is a "^M"
appended.
I don't know how it comes and results something or not.
···
--
Posted via http://www.ruby-forum.com/\.