CSVファイルの読み込みと書き込みの方法

csv-file-read-write

今日のトピックは「CSVファイルの読み込みと書き込みの方法」です。CSV(Comma-Separated Values)ファイルは、データを簡単に保存および交換するためのテキスト形式のファイルです。

CSVファイルを使えば、スプレッドシートやデータベース、その他のアプリケーションとのデータのやり取りが容易になります。

目次

基本概念の説明

CSVファイル

CSVファイルは、各データフィールドがカンマ(または他の区切り文字)で区切られたテキストファイルです。通常、各行は1つのレコードを表し、複数の列を持つデータセットの保存によく使用されます。

CSVファイルの読み書き

CSVファイルの読み書きは、プログラムでCSVデータを操作する基本的な方法です。データのインポートやエクスポート、分析、加工など、さまざまなタスクに使用されます。

各言語でのCSVファイルの読み込みと書き込みの実装例

Python:

import csv

# CSVファイルの書き込み
with open('example.csv', 'w', newline='') as file:
    writer = csv.writer(file)
    writer.writerow(['名前', '年齢', '職業'])
    writer.writerow(['山田太郎', 30, 'エンジニア'])
    writer.writerow(['鈴木花子', 25, 'デザイナー'])

# CSVファイルの読み込み
with open('example.csv', 'r') as file:
    reader = csv.reader(file)
    for row in reader:
        print(row)

C#:

using System;
using System.IO;

class Program
{
    static void Main()
    {
        // CSVファイルの書き込み
        using (StreamWriter writer = new StreamWriter("example.csv"))
        {
            writer.WriteLine("名前,年齢,職業");
            writer.WriteLine("山田太郎,30,エンジニア");
            writer.WriteLine("鈴木花子,25,デザイナー");
        }

        // CSVファイルの読み込み
        using (StreamReader reader = new StreamReader("example.csv"))
        {
            string line;
            while ((line = reader.ReadLine()) != null)
            {
                string[] fields = line.Split(',');
                Console.WriteLine(string.Join(", ", fields));
            }
        }
    }
}

C++:

#include <iostream>
#include <fstream>
#include <sstream>
#include <vector>

int main() {
    // CSVファイルの書き込み
    std::ofstream file("example.csv");
    if (file.is_open()) {
        file << "名前,年齢,職業\n";
        file << "山田太郎,30,エンジニア\n";
        file << "鈴木花子,25,デザイナー\n";
        file.close();
    }

    // CSVファイルの読み込み
    std::ifstream file_in("example.csv");
    std::string line;
    while (getline(file_in, line)) {
        std::stringstream ss(line);
        std::string field;
        std::vector<std::string> row;
        while (getline(ss, field, ',')) {
            row.push_back(field);
        }
        for (const auto& field : row) {
            std::cout << field << " ";
        }
        std::cout << std::endl;
    }
    file_in.close();

    return 0;
}

Java:

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class Main {
    public static void main(String[] args) {
        try {
            // CSVファイルの書き込み
            FileWriter writer = new FileWriter("example.csv");
            writer.append("名前,年齢,職業\n");
            writer.append("山田太郎,30,エンジニア\n");
            writer.append("鈴木花子,25,デザイナー\n");
            writer.flush();
            writer.close();

            // CSVファイルの読み込み
            BufferedReader reader = new BufferedReader(new FileReader("example.csv"));
            String line;
            while ((line = reader.readLine()) != null) {
                String[] fields = line.split(",");
                System.out.println(String.join(", ", fields));
            }
            reader.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

JavaScript:

const fs = require('fs');

// CSVファイルの書き込み
const data = [
    ['名前', '年齢', '職業'],
    ['山田太郎', '30', 'エンジニア'],
    ['鈴木花子', '25', 'デザイナー']
];

const csvContent = data.map(e => e.join(",")).join("\n");

fs.writeFileSync('example.csv', csvContent);

// CSVファイルの読み込み
const content = fs.readFileSync('example.csv', 'utf8');
const rows = content.split("\n");

rows.forEach(row => {
    console.log(row.split(","));
});

各言語の解説

言語CSVファイルの書き込み方法CSVファイルの読み込み方法
Pythoncsv.writerで書き込みcsv.readerで読み込み
C#StreamWriterで書き込みStreamReaderで読み込み
C++std::ofstreamで書き込みstd::ifstreamで読み込み
JavaFileWriterで書き込みBufferedReaderで読み込み
JavaScriptfs.writeFileSyncで書き込みfs.readFileSyncで読み込み

まとめ

今日は、CSVファイルの読み込みと書き込みの方法について学びました。CSVファイルは、データを簡単に保存し、他のシステムやアプリケーションとやり取りするために非常に便利です。

次回は、さらに複雑なCSV操作や、大規模なデータセットの扱い方について学んでいきましょう。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次