라켓에서 CSV 파일을 다운로드하고 구문 분석하려면 어떻게해야합니까?라켓에서 csv 파일을 다운로드하고 구문 분석하는 방법은 무엇입니까?
10
A
답변
12
get-pure-port
을 사용하여 파일을 다운로드하고 Planet 라이브러리 (require (planet neil/csv)
)을 사용하여 파싱하십시오.
다음 예제에서는 데이터를 포함하는 csv 파일을 다운로드하여 다양한 갈라파고스 섬의 크기와 각 섬에서 발견 된 수를 파싱합니다. 반환
#lang racket
(require (planet neil/csv:1:=7) net/url)
(define galapagos-url
(string->url
"http://www.stat.washington.edu/~handcock/536/Data/galapagos.csv"))
(define make-galapagos-csv-reader
(make-csv-reader-maker
'((separator-chars #\,)
(strip-leading-whitespace? . #t)
(strip-trailing-whitespace? . #t))))
(define (all-rows url make-reader)
(define next-row (make-reader (get-pure-port url)))
(define (loop)
(define row (next-row))
(if (empty? row)
'()
(cons row (loop))))
(loop))
(all-rows galapagos-url make-galapagos-csv-reader)
첫 번째 행은 다음과 같습니다
'(("Island"
"Observed.species"
"Native.species"
"Area(km^2)"
"Elevation(m)"
"Distance.nearest.island(km)"
"Distance.Santa.Cruz(km)"
"Area.adj.island(km^2)")
("Baltra" "58" "23" "25.09" "" "0.6" "0.6" "1.84")
("Bartolome" "31" "21" "1.24" "109" "0.6" "26.3" "572.33")
("Caldwell" "3" "3" "0.21" "114" "2.8" "58.7" "0.78")
3
이 대답은 내가 가서보고 된 곳 저를 얻었으나, 나는 미래의 용맹 한 탐험가를 위해 삐 소리라고 생각했다. 요청한 것을하기에 더 쉬운 호출이 있습니다 (아마도 csv 라이브러리의 최신 버전이있을 것입니다). 이것은 물론 쉼표 구분 기호가 필요하고 앞의 예와 같이 앞뒤 공백을 제거한다고 가정합니다.
#lang racket
(require (planet neil/csv:2:0) net/url)
;; Continuing with the UW data sources examples
(define iver-url
(string->url
"http://faculty.washington.edu/cadolph/vis/iver.csv"))
(csv->list (get-pure-port iver-url))
이 버전에서 csv-> list 함수는 앞서 언급 한 기본값을 사용하여 자동으로 csv-reader를 만듭니다. make-csv-reader
으로 생성 된 맞춤 csv 리더를 csv->list
에 전달하여 기본값 (예 : 구분 기호가 다른 경우 또는 후행 및 선행 공백을 제거하지 않으려는 경우)을 무시할 수 있습니다.
6
Neil에 새 라이브러리 csv-reading이 있으므로 대신 사용하십시오. 먼저
, RACO 사용하여 패키지를 설치합니다
(require csv-reading)
(define (csvfile->list filename)
(call-with-input-file filename
csv->list))
는 CSV를 다운로드하려면 :
raco pkg install csv-reading
는 CSV가 목록에 파일을 변환하려면, 여기에 도우미 함수입니다 파일로 변환하고 목록으로 변환하려면 다음과 같이하십시오.
(require net/url)
((compose csv->list get-pure-port string->url) "http://example.com")
csv- 읽기 라이브러리에 대한 내용은 csv-reading library이며, 최신 버전입니다 (다른 답변은 사용되지 않는 것들입니다).
관련 문제
- 1. Bash에서 CSV 파일을 구문 분석하는 방법은 무엇입니까?
- 2. Windows 서비스를 사용하여 CSV 파일을 구문 분석하는 방법은 무엇입니까?
- 3. Java에서 .pb 파일을 구문 분석하는 방법은 무엇입니까?
- 4. 서버에서 XML 파일을 구문 분석하는 방법은 무엇입니까?
- 5. PHP에서 .eml 파일을 구문 분석하는 방법은 무엇입니까?
- 6. 파트별로 xml 파일을 구문 분석하는 방법은 무엇입니까?
- 7. PHP로 .plist 파일을 구문 분석하는 방법은 무엇입니까?
- 8. 속성이있는 XML 파일을 구문 분석하는 방법은 무엇입니까?
- 9. JavaScript로 Excel 파일을 구문 분석하는 방법은 무엇입니까?
- 10. 이 XML 파일을 구문 분석하는 방법은 무엇입니까?
- 11. SSIS에서 XML 파일을 구문 분석하는 방법은 무엇입니까?
- 12. .msstyles 파일을 구문 분석하는 방법은 무엇입니까?
- 13. nagios status.dat 파일을 구문 분석하는 방법은 무엇입니까?
- 14. Java에서 .plist 파일을 구문 분석하는 방법은 무엇입니까?
- 15. 이 OFX 파일을 구문 분석하는 방법은 무엇입니까?
- 16. 루아에서 파일을 읽고 구문 분석하는 방법은 무엇입니까?
- 17. .xfa 파일을 구문 분석하는 방법
- 18. 문서에서 XML을 다운로드하고 저장하는 방법과 문서에서 XML 파일을 구문 분석하는 방법은 무엇입니까?
- 19. 거대한 SQL 파일을 구문 분석하는 가장 좋은 방법은 무엇입니까
- 20. 파일을 구문 분석하는 도구
- 21. XSD 파일을 구문 분석하는 방법
- 22. 특정 결과에 대해 powershell을 사용하여 CSV 파일을 구문 분석하는 방법
- 23. CSV 파일을 자바 스크립트로 배열로 구문 분석하는 방법
- 24. 배열을 구문 분석하는 방법은 무엇입니까?
- 25. Youtube 검색 결과를 구문 분석하는 방법은 무엇입니까?
- 26. XML 파일을 구문 분석하는 방법
- 27. HTML5 문서에서 내 시스템에 로컬 인 .csv 파일을 구문 분석하는 방법은 무엇입니까?
- 28. Blackberry에서 xml 문서를 구문 분석하는 방법은 무엇입니까?
- 29. XML을 구문 분석하는 가장 빠른 방법은 무엇입니까?
- 30. Google 리더에서 구문 분석하는 방법은 무엇입니까?