一覧へ

Python 文字列とファイル入出力

Pythonで文字列を切り貼りし、ファイルを読み書きする基本を学びます。

入門
|
8
|
検証済み (2026-07)
文字列処理ファイル入出力openwith文f-string
進捗0/18 (0%)

Python 文字列とファイル入出力

このトピックを終えると

Python で文字列を様々に操作し、テキストファイルを読み書きできるようになります。


文字列は文字の配列

Python で文字列 (str) は、文字が順に並んだシーケンスです。リストのようにインデックスとスライスが可能です。

python
text = "BioPlayground"
print(text[0]) # 'B' — 最初の文字
print(text[-1]) # 'd' — 最後の文字
print(text[3:7]) # 'Play' — 3 番目から 6 番目まで
print(len(text)) # 13

文字列は 不変 (immutable) です。text[0] = 'b' はエラーになります。修正するには新しい文字列を作成する必要があります。


よく使う文字列メソッド

python
msg = " Hello, World! "
msg.strip() # 'Hello, World!' — 両側の空白を削除
msg.lower() # ' hello, world! '
msg.upper() # ' HELLO, WORLD! '
msg.replace("World", "Python") # ' Hello, Python! '
# 分割と結合
csv = "りんご,バナナ,ぶどう"
fruits = csv.split(",") # ['りんご', 'バナナ', 'ぶどう']
"-".join(fruits) # 'りんご-バナナ-ぶどう'
# 包含の有無
"バナナ" in csv # True
csv.startswith("りんご") # True
csv.count(",") # 2

split()join() は、CSV の解析、ログ分析、データの前処理で毎日使われます。


f-string — 変数を文字列に挿入

Python 3.6 から導入された f-string は、文字列の中に変数を直接入れる最もすっきりとした方法です。

python
name = "キム・フン"
score = 95.5
# f-string (推奨)
print(f"{name}さんの点数: {score}点")
# キム・フンさんの点数: 95.5点
# 数式も可能
print(f"合格かどうか: {'合格' if score >= 60 else '不合格'}")
# 合格かどうか: 合格
# 小数点フォーマット
pi = 3.141592
print(f"円周率: {pi:.2f}") # 円周率: 3.14

以前の方法 ("% s" % name, "{}".format(name)) も動作しますが、f-string は可読性とパフォーマンスの両方で優れています。


ファイルの読み込み

python
# ファイル全体を読み込む
with open("data.txt", "r", encoding="utf-8") as f:
content = f.read()
print(content)
# 一行ずつ読み込む (大きなファイルに有利)
with open("data.txt", "r", encoding="utf-8") as f:
for line in f:
print(line.strip()) # 行末の改行を削除

with 文はファイルをオープンし、ブロックが終了すると 自動的に閉じますf.close() を直接呼び出す必要はありません。with を使用しない場合、ファイルが閉じられず、メモリリークが発生する可能性があるため、常に with を使用します。


ファイルの書き込み

python
# 新しいファイルを作成 (既存の内容を上書き)
with open("output.txt", "w", encoding="utf-8") as f:
f.write("最初の行\n")
f.write("2 番目の行\n")
# 既存のファイルに追加 (append)
with open("output.txt", "a", encoding="utf-8") as f:
f.write("追加された行\n")
モード意味ファイルがない場合
"r"読み取り専用エラー
"w"書き込み (上書き)新規作成
"a"追加 (追記)新規作成
"x"作成 (すでに存在する場合はエラー)新規作成

実践パターン — CSV を直接パース

python
# CSV ファイルを直接パース (ライブラリなし)
with open("scores.csv", "r", encoding="utf-8") as f:
header = f.readline().strip().split(",")
print(header) # ['名前', '国語', '英語', '数学']
for line in f:
fields = line.strip().split(",")
name = fields[0]
total = sum(int(x) for x in fields[1:])
print(f"{name}: 合計 {total}")

もちろん、実務では csv モジュールや pandas を使用しますが、ファイル入出力の原理を理解すれば、どのような形式のデータでも扱えるようになります。


重要なまとめ

文字列とファイルは、プログラミングの 入出力経路 です。外部データを読み込み、処理結果を保存し、人が読める形式で出力するすべてのプロセスがここから始まります。split, join, f-string, with open — この 4 つを習得すれば、ほとんどのテキスト処理が可能になります。

💬 質問・コメント

0件のコメント

ログインせずに投稿できます。ゲスト投稿は投稿者自身で編集・削除できません。

0/2000

読み込み中...