1
그래서 csv 파일에서 지정된 수의 입력란을 제거하는 간단한 Ruby 스크립트를 만들려고합니다. 먼저 배열에 csv 파일을 쓰고 그 배열을 delete_fields 메서드에 전달합니다. 필드 삭제 메서드에서 모든 행의 모든 열을 반복하고 열이 삭제에 필요한 필드 범위 사이에 있는지 확인합니다. 지금은 처음 세 분야에서 일하는 것 같고 4 일에 걸립니다.배열에서 문자열을 삭제하려고 시도하는 동안 정의되지 않은 메서드 "delete_at"
다음과require 'csv'
def read_csv(csv_file)
arr_of_records = CSV.read(csv_file)
return arr_of_records
end
def remove_fields (csv_array, new_csv_file, start_field, end_field)
#file = File.new(new_csv_file, "w")
csv_array.each_with_index do |row, row_i |
row.each_with_index do |column, column_i|
column.delete_at(column_i) if ((column_i >= start_field) && (column_i <= end_field))
puts column
end
end
end
remove_fields(read_csv(ARGV[0]), ARGV[1], ARGV[2].to_i, ARGV[3].to_i)
내가 오류가 될 때 :
[email protected]:~$ ruby csv_read.rb test_data.csv altered_test_data.csv 3 8
8
?
?
csv_read.rb:16:in `remove_fields': undefined method `delete_at' for "Lakewoodcity":CSV::Cell (NoMethodError)
from csv_read.rb:1:in `each_with_index'
from csv_read.rb:14:in `each'
from csv_read.rb:14:in `each_with_index'
from csv_read.rb:14:in `remove_fields'
from csv_read.rb:1:in `each_with_index'
from csv_read.rb:13:in `each'
from csv_read.rb:13:in `each_with_index'
from csv_read.rb:13:in `remove_fields'
from csv_read.rb:24
어떤 도움이 많이 감사
여기 내 코드입니다.
슬라이스를 사용하여 작업하고 있습니다! 메서드를 사용하여 범위 매개 변수를 지정합니다. 7 시간 안에 솔루션을 게시 할 것인가 (신규 사용자) 여전히 이것이 작동하지 않는 이유를 알고 싶어합니다. – ryanVincent