Ruby에서 CSV로 배열 출력
- CSV란?
-
Ruby에서
CSV.open
메서드를 사용하여 CSV 파일 생성 -
Ruby에서
File.write
방법을 사용하여 CSV 파일 생성 - Ruby를 사용하여 터미널 내부에 CSV 파일 생성
- 결론
긴 정보 목록을 다룰 때 읽기 쉽도록 정리해야 할 때가 있습니다. 이것이 바로 CSV가 제공하는 것입니다.
CSV란?
CSV는 쉼표로 구분된 값
을 의미합니다. 즉, 쉼표로 구분하여 데이터 형식을 지정합니다.
이러한 출력 형식은 우리의 데이터를 테이블 형식으로 잘 정리하여 개인이 이러한 데이터를 살펴볼 때 필요한 경우 쉽게 읽고 편집할 수 있도록 합니다.
CSV 데이터는 자체 .csv
형식 또는 보다 일반적인 .txt
파일로 저장할 수 있습니다.
Ruby 프레임워크를 사용하여 배열의 데이터에서 CSV 파일을 만드는 다양한 방법을 살펴보겠습니다.
Ruby에서 CSV.open
메서드를 사용하여 CSV 파일 생성
이 예에서는 CSV.open
함수를 생성하고 파일을 저장할 경로를 입력합니다. 그런 다음 CSV 태그 안에 CSV 형식으로 정리하려는 데이터 배열을 입력합니다.
새 파일을 만들고 이름을 new.rb
로 지정하고 다음 코드를 입력합니다.
require 'csv'
CSV.open("C:/Users/HP/Downloads/csv/outfield.txt", "w") do |csv|
csv << ["one", "two", "three", "four"]
csv << ["eight", "five"]
# ...
end
이 코드를 실행하면 CSV.open
괄호에 지정한 경로에 outfield.txt
파일이 생성된 것을 볼 수 있습니다. 그런 다음 지정된 경로 내에 파일을 만들 수 있도록 경로 바로 옆에 "w"
를 추가한 것을 볼 수 있습니다.
거기에서 "w"
를 제거하면 쓰기용으로 열리지 않음(IOError)
이라는 오류 메시지가 표시됩니다.
Ruby에서 File.write
방법을 사용하여 CSV 파일 생성
이 방법에서는 파일을 만들려는 경로에 "w"
를 추가할 필요가 없습니다. 이는 File.write
가 쓰기를 위한 경로를 즉시 연 다음 파일을 생성하기 때문입니다.
새 파일을 만들고 이름을 new.rb
로 지정하고 다음 코드를 입력합니다.
tables = [["first", "second", "third"],["army", "marine", "navy", "blackops"], ["James", "Bond", "007"]]
require "csv"
File.write("C:/Users/HP/Downloads/csv/outfe.txt", tables.map(&:to_csv).join)
여기에서는 tables
태그 안에 배열을 만들었습니다. 그런 다음 File.write()
함수 내에서 파일을 생성할 위치를 지정했습니다.
그런 다음 map
기능을 사용하여 테이블 배열의 데이터를 CSV 형식으로 반환합니다. 이 코드를 실행하면 잠시 후 지정한 경로에 새 파일이 생성된 것을 볼 수 있습니다.
Ruby를 사용하여 터미널 내부에 CSV 파일 생성
이 방법은 CSV 형식의 데이터로 파일을 생성하지 않습니다. 대신 터미널에 바로 데이터를 표시합니다. 이는 결과를 빠르게 사용하거나 더 보기 좋은 형식으로 데이터를 읽고 싶을 때 유용합니다.
새 파일을 만들고 이름을 new.rb
로 지정한 다음 다음 코드를 입력합니다.
require 'csv'
csv_string = CSV.generate do |csv|
csv << ["google", "bing", "ask", "search"]
csv << ["find", "seek"]
# ...
end
CSV.generate
함수는 csv
괄호 안의 배열을 가져와 CSV 형식으로 데이터를 생성합니다. 코드를 실행하면 터미널 내부에 CSV 형식의 데이터가 표시됩니다.
결론
데이터를 쉼표로 구분하여 명확하게 정리하는 CSV의 기능은 긴 데이터 목록을 훑어보는 데 도움이 됩니다.
Fisayo is a tech expert and enthusiast who loves to solve problems, seek new challenges and aim to spread the knowledge of what she has learned across the globe.
LinkedIn