>  기사  >  백엔드 개발  >  csv를 바이트로 읽습니다.

csv를 바이트로 읽습니다.

PHPz
PHPz앞으로
2024-02-09 09:30:19429검색

将 csv 读入字节

php 편집기 Xigua는 CSV 파일을 바이트로 읽는 방법을 소개합니다. CSV는 표 형식의 데이터를 저장하고 교환하는 데 일반적으로 사용되는 일반적인 데이터 형식입니다. 전통적인 방법은 파일 연산 기능을 사용하여 CSV 파일을 한 줄씩 읽어 배열이나 객체로 저장하는 것입니다. 그러나 CSV 파일을 바이트 단위로 읽으면 대용량 데이터 세트를 더 효율적으로 처리할 수 있고 메모리 사용량 측면에서 더 경제적일 수 있습니다. 이 방법은 fopen 함수를 사용하여 바이너리 모드로 파일을 열고 fread 함수를 사용하여 파일 내용을 읽는 방식으로 구현할 수 있습니다. 읽은 바이트는 데이터 분석 및 조작을 위해 배열이나 기타 데이터 구조로 추가 처리될 수 있습니다. 이 방법을 통해 PHP의 기능을 더 잘 활용하여 CSV 파일을 처리하고 데이터 처리 효율성을 향상시킬 수 있습니다.

질문 내용

csv 파일을 2D 바이트 슬라이스로 읽을 때 이상한 동작이 발생했습니다. 처음 42개 행은 괜찮지만, 추가 행 끝이 데이터에 삽입되어 상황이 엉망이 되는 것 같습니다.

처음 42번 중 첫 번째 줄:

으아악

라인 43 다음에 첫 번째 라인을 추가하세요:

으아악

문제를 재현하기 위한 최소한의 코드:

으아악

내가 사용한 CSV:

으아악

row[][]byte에 행별 csv 데이터가 포함될 것으로 예상했습니다.

해결 방법

이미 제안한 대로 encoding/csv을 사용해야 합니다.

즉, 문제의 원인은 bytes() 함수 위의 godoc에 있습니다:

으아악

따라서 scan()에 대한 후속 호출은 반환된 바이트 슬라이스를 수정할 수 있습니다. 이를 방지하려면

와 같은 바이트 슬라이스를 복사해야 합니다. 으아악

위 내용은 csv를 바이트로 읽습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 stackoverflow.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제