Python を使ってディレクトリとファイルを作成する方法

PythonBeginner
オンラインで実践に進む

はじめに

このチュートリアルでは、Python プログラミング言語を使用したファイルとディレクトリの管理の基本について学びます。ディレクトリの作成方法、ファイルの作成と操作方法を学び、ファイルシステムのタスクを効率的に自動化することができるようになります。

ファイルとディレクトリの基本を理解する

Python プログラミングの世界では、ファイルとディレクトリを扱うことは基本的なスキルです。ファイルやディレクトリを効果的に作成、管理、操作するには、基本的な概念と用語を理解することが重要です。

ファイルシステムの基本

ファイルシステムは、コンピュータがファイルとディレクトリ(フォルダとも呼ばれます)を整理して保存する方法です。各ファイルとディレクトリには、ファイルシステムの階層内でその位置を識別する一意のパスがあります。

典型的なファイルシステムには、以下の主要な要素があります。

  • ファイル: ファイルは、ハードドライブやソリッドステートドライブなどの記憶装置に保存されたデータの集合です。ファイルには、テキスト、画像、音声、ビデオ、またはその他の種類のデジタルコンテンツを含めることができます。
  • ディレクトリ: ディレクトリは、フォルダとも呼ばれ、ファイルや他のディレクトリを格納できるコンテナです。ディレクトリは、ファイルを論理的かつ階層的に整理するのに役立ちます。
  • パス: パスは、ファイルシステム内のファイルまたはディレクトリの位置です。Linux/macOS ではスラッシュ (/)、Windows ではバックスラッシュ (\) で区切られたディレクトリ名とファイル名で構成されます。

絶対パスと相対パスを理解する

ファイルやディレクトリを扱う際には、2 種類のパスに遭遇します。

  1. 絶対パス: 絶対パスは、ファイルシステムのルートから始まる、ファイルまたはディレクトリの位置を完全かつ明確に示す参照です。たとえば、Linux システムでは、ユーザーのホームディレクトリの絶対パスは /home/username となる場合があります。
  2. 相対パス: 相対パスは、現在の作業ディレクトリを基準としたファイルまたはディレクトリへの参照です。相対パスは、絶対パスよりも短く、使いやすいことが多いです。たとえば、/home/username/documents ディレクトリにいる場合、同じディレクトリ内の example.txt という名前のファイルへの相対パスは example.txt となります。

ファイルシステムを操作する

Python でファイルシステムを操作するには、os および os.path モジュールを使用できます。これらのモジュールは、オペレーティングシステムやファイルシステムとやり取りするための一連の関数とメソッドを提供します。

import os

## Get the current working directory
current_dir = os.getcwd()
print(f"Current directory: {current_dir}")

## Change the current working directory
os.chdir("/path/to/new/directory")

これらの基本的なファイルとディレクトリの概念を理解することで、Python を使用してファイルやディレクトリを作成、管理、操作する準備が整います。

Python でディレクトリを作成する

ディレクトリの作成は、Python プログラミングにおける一般的なタスクです。os モジュールには、ディレクトリを作成、削除、管理するためのいくつかの関数が用意されています。

単一のディレクトリを作成する

単一のディレクトリを作成するには、os.mkdir() 関数を使用できます。この関数は、作成したいディレクトリのパスを引数として取ります。

import os

## Create a new directory named "example_dir"
os.mkdir("example_dir")

複数のディレクトリを作成する

複数の階層を持つディレクトリ構造を作成する必要がある場合は、os.makedirs() 関数を使用できます。この関数は、パス内のすべての必要な中間ディレクトリを作成することができます。

import os

## Create a directory structure with multiple levels
os.makedirs("parent_dir/child_dir/grandchild_dir")

既存のディレクトリを扱う

既に存在するディレクトリを作成しようとすると、os.mkdir() 関数は OSError を発生させます。これを処理するには、try-except ブロックを使用できます。

import os

try:
    os.mkdir("example_dir")
    print("Directory created successfully.")
except OSError as e:
    if e.errno == errno.EEXIST:
        print("Directory already exists.")
    else:
        raise

ディレクトリを削除する

ディレクトリを削除するには、os.rmdir() 関数を使用できます。この関数は空のディレクトリのみを削除します。

import os

## Delete an empty directory
os.rmdir("example_dir")

空でないディレクトリを削除するには、shutil モジュールの shutil.rmtree() 関数を使用できます。

import os
import shutil

## Delete a directory and its contents
shutil.rmtree("parent_dir")

これらのディレクトリ作成と管理のテクニックを習得することで、Python プロジェクトを効果的に整理し、ファイルシステム構造を管理することができるようになります。

ファイルの作成と操作

ディレクトリの作成と管理に加えて、Python はファイルを扱うための幅広い関数とメソッドを提供しています。ファイルを作成、書き込み、読み取り、操作するさまざまな方法を見ていきましょう。

ファイルの作成

Python で新しいファイルを作成するには、組み込みの open() 関数を使用できます。この関数は、ファイルパスとモード(例: 書き込み用の "w"、読み取り用の "r"、追記用の "a")を引数として取ります。

## Create a new file named "example.txt"
file = open("example.txt", "w")
file.close()

あるいは、pathlib モジュールを使用することもできます。このモジュールは、ファイルやディレクトリの操作に対してよりオブジェクト指向的なアプローチを提供します。

from pathlib import Path

## Create a new file using pathlib
file_path = Path("example.txt")
file_path.touch()

ファイルへの書き込み

ファイルを作成したら、write() メソッドを使用してデータを書き込むことができます。

## Write data to the file
file = open("example.txt", "w")
file.write("This is some example text.")
file.close()

ファイルからの読み取り

ファイルからデータを読み取るには、read() メソッドを使用できます。

## Read data from the file
file = open("example.txt", "r")
content = file.read()
print(content)
file.close()

ファイルへの追記

既存のファイルに新しいデータを追加したい場合は、"a"(追記)モードを使用できます。

## Append data to the file
file = open("example.txt", "a")
file.write("\nAdding more text to the file.")
file.close()

ファイルのコンテキストマネージャ

ファイルが使用後に適切に閉じられることを確認するには、コンテキストマネージャとして機能する with 文を使用することをおすすめします。

## Use the with statement to manage file operations
with open("example.txt", "w") as file:
    file.write("This text will be written to the file.")

これらのファイル作成と操作のテクニックを理解することで、Python プロジェクトで効果的にファイルを扱うことができるようになります。

まとめ

このチュートリアルの最後まで学ぶことで、Python の組み込み関数とモジュールを活用してディレクトリとファイルを作成する方法をしっかりと理解することができます。これにより、ファイルシステムの管理タスクを効率化し、Python のプログラミングスキルを向上させるためのツールを手に入れることができます。