LEVEL 6 ・ ファイル / Lesson 13

フォルダを見て、ファイル名を変える

フォルダ内のファイルを一覧にして、名前を一括で変更します。安全な進め方も学びます。

目安 15分 ・ インストール不要

このレッスンが終わったら

「フォルダの中身を一覧にして、条件に合うファイルだけ名前を変えられる。変更する前に、まず表示で確認する」と言える。

STEP 1

できることを見る

invoices という名前のフォルダに、請求書のファイルが入っています。

用意されているフォルダとファイルサンプル
    • members.txt
    • sales.csv
  • invoices/
    • invoice_tanaka.txt
    • invoice_sato.txt
    • invoice_suzuki.txt
    • list.csv

このフォルダの中身を、Pythonに一覧にしてもらいましょう。

import os

for name in sorted(os.listdir("invoices")):
    print(name)
STEP 2

動かしてみる

フォルダの中身を一覧にするサンプルファイル付き・書き換えOK
Ctrl / ⌘ + Enter でも実行

この欄では、サンプルファイルが使えます。実行のたびに、ファイルは最初の状態に戻ります。

結果
▶ 実行を押すと、ここに結果が出ます

4つのファイルの名前が、表示されましたか。Excelや、パソコンのフォルダ画面で見ていた一覧を、Pythonで取り出せました。

STEP 3

1行ずつ読む

1行ずつ日本語にしてみる
import osファイルやフォルダを扱うための、便利機能セット(os)を使う
os.listdir("invoices")invoices フォルダの中にある、ファイルの名前を、リストにして取り出す
sorted(...)名前の順(五十音・アルファベット順)に並べる
for name in ...:1つずつ取り出して、「name」と呼ぶ
print(name)ファイルの名前を表示する

日本語にすると

invoices フォルダの中のファイル名を、並べ替えて、1つずつ表示してください。

os.listdir が返すのは、ファイル名のリストです。LEVEL 4 で学んだリストなので、for で1つずつ取り出せます。

STEP 4

1か所だけ変える

① 特定の種類のファイルだけを選ぶ。 .txt で終わるものだけを表示してみましょう。endswith は「〜で終わるか」を調べます。

txtファイルだけを選ぶサンプルファイル付き・書き換えOK
Ctrl / ⌘ + Enter でも実行

この欄では、サンプルファイルが使えます。実行のたびに、ファイルは最初の状態に戻ります。

結果
▶ 実行を押すと、ここに結果が出ます

② ファイルがあるか確認する。 os.path.exists で、あるか・ないかを調べられます。結果は True / False です。

ファイルがあるか調べるサンプルファイル付き・書き換えOK
Ctrl / ⌘ + Enter でも実行

この欄では、サンプルファイルが使えます。実行のたびに、ファイルは最初の状態に戻ります。

結果
▶ 実行を押すと、ここに結果が出ます

③ ファイル名を変える。 os.rename(今の名前, 新しい名前) で、名前を変えられます。ここでは、.txt のファイルの先頭に 2025-10_ を付けます。

ファイル名を一括で変えるサンプルファイル付き・書き換えOK
Ctrl / ⌘ + Enter でも実行

この欄では、サンプルファイルが使えます。実行のたびに、ファイルは最初の状態に戻ります。

結果
▶ 実行を押すと、ここに結果が出ます

list.csv は .txt ではないので、そのままです。3つだけが変わりました。os.path.join は、フォルダの名前とファイル名を、正しくつなげます。

まずは、予定だけを表示するサンプルファイル付き・書き換えOK
Ctrl / ⌘ + Enter でも実行

この欄では、サンプルファイルが使えます。実行のたびに、ファイルは最初の状態に戻ります。

結果
▶ 実行を押すと、ここに結果が出ます
STEP 5

自分で書く

お題① invoices フォルダの中に、ファイルが何個あるかを表示してください。(4と表示されれば正解です)

お題①:ファイルの数サンプルファイル付き・書き換えOK
Ctrl / ⌘ + Enter でも実行

この欄では、サンプルファイルが使えます。実行のたびに、ファイルは最初の状態に戻ります。

結果
▶ 実行を押すと、ここに結果が出ます
ヒントを見る

os.listdir("invoices") はリストです。リストの数は len() で数えられます。

答えの例を見る
import os

print(len(os.listdir("invoices")))

お題② .txt のファイル名の先頭に paid_ を付けて、名前を変えてください。そのあとの、一覧を表示するコードは、最初から書いてあります。

お題②:paid_ を付けるサンプルファイル付き・書き換えOK
Ctrl / ⌘ + Enter でも実行

この欄では、サンプルファイルが使えます。実行のたびに、ファイルは最初の状態に戻ります。

結果
▶ 実行を押すと、ここに結果が出ます
ヒントを見る

一覧を表示するコードより前に、for で .txt のファイルを取り出し、os.rename(os.path.join("invoices", name), os.path.join("invoices", "paid_" + name)) を書きます。

答えの例を見る
import os

for name in sorted(os.listdir("invoices")):
  if name.endswith(".txt"):
      os.rename(os.path.join("invoices", name), os.path.join("invoices", "paid_" + name))

for name in sorted(os.listdir("invoices")):
  print(name)
STEP 6

仕事ならどう使う?