型10: テキストファイルの読み書き
クラス: 初心者
所要時間: 約30分
前提知識: 型1〜9 完了済み
1. 解説
ファイル読み取りのパターン
Claude Code にファイルを「読ませる」指示の出し方:
bash
# ファイルの内容を確認する
「config.json を読んでください」
# ファイルを読んで分析する
「src/app.js を読んで、関数の一覧を教えてください」
# 複数ファイルを比較する
「src/old.js と src/new.js を読んで、差分を説明してください」
# 一部だけ読む
「src/app.js の先頭50行を読んでください」ファイル書き込み・編集のパターン
bash
# 既存ファイルに追記
「README.md の末尾にトラブルシューティングセクションを追加してください」
# 一部を変更
「src/config.js の PORT の値を 3000 から 8080 に変更してください」
# ファイル全体を書き直し
「src/utils.js を TypeScript に書き直してください」
# 特定の関数を変更
「getUserById 関数をasync/awaitに書き直してください」注意:ファイル編集時の確認フロー
1. AI が変更計画を提示
「以下の変更を行います:...」
2. ユーザーが確認
[y/n] で承認・却下
3. 変更が適用される
● Edit: src/app.js
4. 自分でファイルを確認
cat src/app.js または claude で再度読ませる2. 実践
Step 1: CSVファイルの読み取りと加工
bash
mkdir -p ~/claude-practice/lesson10
cd ~/claude-practice/lesson10
cat > employees.csv << 'EOF'
id,name,department,salary
1,Alice,Engineering,85000
2,Bob,Marketing,62000
3,Carol,Engineering,92000
4,Dave,HR,58000
5,Eve,Engineering,78000
EOFbash
claudeemployees.csv を読んで、以下の情報を教えてください:
1. 部署ごとの人数
2. 部署ごとの平均給与
3. 最高給与の社員と最低給与の社員Step 2: Markdown ファイルの編集
bash
cat > notes.md << 'EOF'
# プロジェクトノート
## やること
- APIの設計
- データベース設計
## 完了
(なし)
EOFnotes.md を読んで、「やること」のリストに以下を追加してください:
- フロントエンドの実装
- テストコードの作成
- デプロイ設定変更後の確認:
bash
cat notes.mdStep 3: 設定ファイルの安全な更新
bash
cat > config.json << 'EOF'
{
"server": {
"host": "localhost",
"port": 3000
},
"database": {
"host": "localhost",
"port": 5432,
"name": "mydb"
},
"debug": true
}
EOFconfig.json を読んで、以下の変更をしてください:
- server.port を 8080 に変更
- debug を false に変更
- database に "pool": { "max": 10, "min": 2 } を追加Step 4: 複数ファイルにまたがる読み取り
bash
echo "const DB_HOST = 'localhost';" > src/db.js
echo "const APP_PORT = 3000;" > src/server.jssrc/db.js と src/server.js を両方読んで、
設定値(ホスト名・ポート番号)がどのファイルに分散しているか教えてください。
統一して管理するための改善案を1つ提案してください。3. 確認課題(Assignment)
課題 10-1: ログファイルの解析
bash
cat > app.log << 'EOF'
2024-01-15 10:00:01 INFO Server started on port 3000
2024-01-15 10:05:32 ERROR Database connection failed: ECONNREFUSED
2024-01-15 10:05:33 INFO Retrying connection...
2024-01-15 10:05:35 INFO Database connected
2024-01-15 10:10:22 WARN Request timeout: GET /api/users (5000ms)
2024-01-15 10:15:44 ERROR Unhandled exception: TypeError: Cannot read properties of null
2024-01-15 10:20:01 INFO 100 requests processed
EOFapp.log を読んで、以下をまとめてください:
1. ERRORとWARNのログだけを抽出
2. 問題の深刻度順に並べ替えて報告
3. 対処が必要なエラーに対して改善提案達成条件: ERROR/WARN が正確に抽出され、改善提案が具体的であること
課題 10-2: ファイルの段階的な更新
notes.md に対して、3回の別々の指示でコンテンツを追加せよ:
1回目: 「完了セクションに「APIの設計」を移動せよ」
2回目: 「新しく「メモ」セクションを末尾に追加せよ」
3回目: 「全体を読んで、TODOの優先度を高・中・低に分類せよ」
達成条件: 3回の指示がすべて正確に反映されていること
課題 10-3: 設定値の一貫性チェック
bash
cat > .env.example << 'EOF'
DB_HOST=localhost
DB_PORT=5432
APP_PORT=3000
SECRET_KEY=your-secret-here
EOFconfig.json と .env.example を両方読んで、
設定値に矛盾や重複がないか確認してください。
問題があれば指摘してください。達成条件: 2つのファイル間の設定値の一致・矛盾が正確に報告されること
