C#에서 CSV 파일 구문 분석
이 자습서에서는 C#에서 CSV 파일을 구문 분석하는 방법에 대해 설명합니다.
C#에서TextFieldParser
클래스를 사용하여 CSV 파일 구문 분석
TextFieldParser
클래스를 사용하려면 C# 코드에서Microsoft.VisualBasic.dll
을 참조해야합니다. TextFieldParser
클래스에는 C#에서 구조화 된 텍스트 파일을 구문 분석하기위한 여러 메소드가 포함되어 있습니다. TextFieldParser
클래스 내의SetDelimiters()
함수를 사용하여 구분 기호를,
로 설정하여TextFieldParser
클래스로 CSV 파일을 읽을 수 있습니다. 다음 코드 예제는 C#에서TextFieldParser
클래스를 사용하여 CSV 파일을 구문 분석하는 방법을 보여줍니다.
using System;
using Microsoft.VisualBasic.FileIO;
namespace parse_csv {
class Program {
static void Main(string[] args) {
using (TextFieldParser textFieldParser = new TextFieldParser(@"C:\File\Sheet1.csv")) {
textFieldParser.TextFieldType = FieldType.Delimited;
textFieldParser.SetDelimiters(",");
while (!textFieldParser.EndOfData) {
string[] rows = textFieldParser.ReadFields();
}
}
}
}
}
위의 코드에서 생성자에 CSV 파일 경로를 지정하여TextFieldParser
클래스의textFieldParser
인스턴스를 초기화했습니다. 그런 다음textFieldParser.TextFieldType = FieldType.Delimited
로 구분되도록 텍스트 필드 유형을 설정하고textFieldParser.SetDelimiter(',')
함수를 사용하여 구분자로,
를 설정합니다. 그런 다음while
루프를 사용하여textFieldParser.EndofData
로 끝까지 CSV 파일을 읽었습니다. ReadFields()
함수를 사용하여 문자열 배열 안에 데이터를 저장했습니다.
C#의FileHelpers
라이브러리를 사용하여 CSV 파일 구문 분석
FileHelpers
라이브러리는 C#의 파일, 스트림 및 문자열에 데이터를 읽고 쓰는 데 사용됩니다. 타사 라이브러리이며.NET
프레임 워크와 함께 사전 설치되지 않습니다. Visual Studio IDE의 NuGet 패키지 관리자에서 검색하여 쉽게 설치할 수 있습니다. FileHelpersEngine
클래스를 사용하여 C#의 CSV 파일에서 데이터를 구문 분석 할 수 있습니다. FileHelperEngine
클래스는 파일의 데이터를 C#의 클래스 개체로 가져옵니다. 따라서 먼저 파일에서 데이터를 보관할 수있는 모델 클래스를 만들어야합니다. 클래스에는 CSV 파일의 열을 나타내는 필드가 포함됩니다. 여기서[DelimitedRecord(",")]
를 사용하여,
가 구분 기호로 사용되도록 지정할 수 있습니다. ReadFile(path)
함수를 사용하여 지정된 경로의 파일에서 클래스 객체 배열 내부의 데이터를 읽을 수 있습니다. 다음 코드 예제는 C#에서FileHelpers
라이브러리를 사용하여 CSV 파일을 구문 분석하는 방법을 보여줍니다.
using FileHelpers;
using System;
namespace parse_csv {
[DelimitedRecord(",")]
public class Record {
public string Name;
public string Age;
}
class Program {
static void Main(string[] args) {
var fileHelperEngine = new FileHelperEngine<Record>();
var records = fileHelperEngine.ReadFile(@"C:\File\records.csv");
foreach (var record in records) {
Console.WriteLine(record.Name);
Console.WriteLine(record.Age);
}
}
}
}
출력:
Name
Age
MMA
22
SDA
19
SHA
11
위 코드에서C:\File\records.csv
파일 내부의 데이터를 읽고 C#의FileHelpers
라이브러리를 사용하여Record
클래스의 객체 배열에 저장합니다.
Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.
LinkedIn