Pythonでファイルを操作できることをご存知ですか?
基本から応用まで、ファイル入出力に関するあらゆる疑問を解決できるガイドをご用意しました。
この記事では、初心者でも簡単にファイル操作をマスターできるよう、分かりやすい説明と具体的な例を通じて、Pythonでのファイル読み書きのテクニックを一から丁寧に解説します。
あなたが直面しているファイル操作の問題を解決し、作業の効率化を図るための実用的な知識とスキルを、今すぐ手に入れましょう。
Pythonでファイル操作を始めよう
ファイル入出力とは?基本的な概念
Pythonでのファイル入出力は、データを読み書きするための基本的なプロセスです。
これにより、テキストファイルやCSVファイルなど、様々な形式のデータを扱うことができます。
簡単に言えば、ファイルからデータを「読み込む」ことと、ファイルにデータを「書き込む」ことの二つの操作が主にあります。
これらの操作を理解し、使いこなせるようになることは、Pythonプログラミングの重要なスキルの一つです。
Pythonでのファイル操作の前準備
Pythonでファイルを操作する前に、操作したいファイルのパスを正確に知っておく必要があります。
ファイルパスとは、ファイルがコンピュータ上でどこにあるかを示す住所のようなものです。
また、ファイルを操作する際は、そのファイルが読み取り専用なのか、書き込みも可能なのかといったアクセス権限も重要なポイントになります。
「相対パス」と「絶対パス」っていう二つの方法があります。
この二つを簡単に言うと、「どこから見るか」で違います。
ここではMacでのパスの違いを見ていきましょう。
絶対パス
絶対パスは、地図で言うと「正確な住所」みたいなものです。
絶対パスは、ファイルシステムの最上位から始まり、目的のファイルやフォルダまでの完全な道のりを表します。
たとえば、デスクトップ上に「my_project」という名前のフォルダがあり、その中に「script.py」というPythonファイルがあるとします。
このファイルをPythonで開くためには、その「完全な住所」を指定する必要があります。
file_path = "/Users/あなたのユーザー名/Desktop/my_project/script.py"
相対パス
一方、相対パスは、「今いる場所からの道順」みたいなものです。
相対パスは、現在いるディレクトリ(フォルダ)を基点として、目的のファイルやフォルダまでの道のりを表します。
「my_project」フォルダ内にあって、「script.py」を開きたい場合、相対パスを使うともっとシンプルになります。
もしPythonスクリプト自体も「my_project」フォルダ内にあるなら、相対パスは以下のようになります。
file_path = "script.py"
ファイル操作の基本コマンド
Pythonでファイルを操作する最初のステップは、open関数を用いてファイルを開くことです。
ファイルを開いて読み取る
# ファイルを開く
file = open('path/to/your/file.txt', 'r') # 'r'モードは読み取り専用を意味します
# ファイルの内容を読み取る
content = file.read()
print(content)
# ファイルを閉じる
file.close()
このコードでは、open
関数を使ってファイルを読み取りモードで開き、read
メソッドでファイルの内容を読み取っています。
最後に、close
メソッドでファイルを閉じてリソースを解放しています。
ファイルに書き込む
# ファイルを開く(書き込みモード)
file = open('path/to/your/file.txt', 'w') # 'w'モードは書き込み(既存の内容は削除されます)
# ファイルにテキストを書き込む
file.write('Hello, world!')
# ファイルを閉じる
file.close()
書き込みモード(’w’)でファイルを開くと、ファイルがすでに存在する場合はその内容が削除され、新しい内容で置き換えられます。write
メソッドを使ってファイルに内容を書き込んだ後、close
メソッドでファイルを閉じます。
ファイル取り扱い方のテクニック
大きなファイルを効率よく読み込む方法
コンピューターでも、ファイルを開いて作業をしたら、ちゃんと「閉じる」必要があります。
そうしないと、コンピューターの中で余計なスペースを取ってしまったり、書いた内容がうまく保存されなかったりすることがあります。with open
を使うと、Pythonが自動でファイルを「開いて閉じる」手伝いをしてくれるので、安心してファイルの読み書きができます。
with open('diary.txt', 'r') as my_diary:
content = my_diary.read()
print(content)
このコードは、「diary.txt」という日記ファイルを読む例です。with open
の後にファイル名と、’r’(読み取りモード)を指定しています。as my_diary:
の部分は、「このファイルをmy_diary
として使います」という意味です。
そして、my_diary.read()
でファイルの中身を全部読んで、print(content)
で画面に表示します。
with ファイルを開く処理 as 変数:
*開く処理で返されるファイルオブジェクトが変数に代入される
ファイルを操作する処理
*with ブロックの終了時にファイルを自動的に閉じる処理が行われる
*処理はインデント(字下げ)として記述する
Pythonでテキストファイルを読み込む基本的な方法は、open関数を使用してファイルを開き…
CSVファイルの扱い方
CSVファイルは、カンマで区切られた値が並んでいるファイルです。
Pythonではcsv
モジュールを使って簡単に扱うことができます。
下のコードでは、CSVファイルの各行を読み取って表示しています。
import csv
# CSVファイルを読む例
with open('example.csv', 'r') as file:
reader = csv.reader(file)
for row in reader:
print(row)
CSVファイルを作成・編集する方法
CSVファイルに書き込むときは、csv.writer
を使います。writerow
メソッドで1行ずつデータを書き込むことができます。
import csv
# CSVファイルにデータを書き込む例
with open('example.csv', 'w', newline='') as file:
writer = csv.writer(file)
writer.writerow(['名前', '年齢', '職業'])
writer.writerow(['山田太郎', '30', '教師'])
newline=''
は、CSVファイルを書き込むときに、行の間に余計な空行が入らないようにするための設定です。
ファイルの上書きと追加の違い
ファイルに新しい内容を加えたいだけで、前の内容を消したくない場合は、'a'
モード(追加モード)でファイルを開きます。
これで、ファイルの末尾に新しい内容を追加できます。
# ファイルに追加書き込みをする例
with open('example.txt', 'a') as file:
file.write('\n新しい行を追加します。')
応用:ファイル操作を自動化する
ファイルとディレクトリの操作
Pythonのos
モジュールを使うと、ファイルやフォルダ(正式にはディレクトリと呼びます)の操作ができるようになります。
ここでは、フォルダの作成、名前変更、移動の仕方を簡単なコード例を使って説明します。
フォルダを作成する
フォルダを新しく作るには、os.makedirs
関数とos.mkdir
関数を使用する方法があります。
os.mkdir
は、既に存在する親ディレクトリ内に新しいディレクトリを一つ作成する場合に使用します。os.makedirs
は、一連のディレクトリ構造(親ディレクトリを含む)を新しく作成する必要がある場合に使用します。
import os
# 中間ディレクトリも含めてディレクトリを作成
os.makedirs('parent_directory/new_directory')
import os
# 単一のディレクトリを作成
os.mkdir('new_directory')
フォルダの名前を変更する
フォルダの名前を変更するには、os.rename
関数を使います。
下記のコードでは、「my_folder」というフォルダの名前を「new_folder」に変更しています。
import os
# フォルダ「my_folder」の名前を「new_folder」に変更する
os.rename('my_folder', 'new_folder')
フォルダを移動する
ファイルやフォルダを移動するには、Pythonのshutil
モジュールを使用する方法と、os
モジュールの機能を利用する方法があります。
ここでは、それぞれの方法を説明します。
shutil.moveを使用する方法
shutil
モジュールのmove
関数は、ファイルやフォルダを移動するのに非常に便利です。
この関数を使うと、元の場所から新しい場所へファイルやフォルダを移動できます。
また、移動先のディレクトリが存在しない場合は、そのディレクトリを自動で作成します。
import shutil
# ファイルを移動する例
shutil.move('source_file.txt', 'destination_directory/source_file.txt')
# フォルダを移動する例
shutil.move('source_folder', 'destination_directory/source_folder')
のコードでは、最初にsource_file.txt
ファイルをdestination_directory
ディレクトリに移動しています。次に、source_folder
フォルダを同じくdestination_directory
に移動しています。
移動が完了すると、元の場所にはファイルやフォルダは残りません。
s.renameを使用する方法
os
モジュールのrename
関数もファイルやフォルダを移動するのに使用できますが、この関数を使用する場合は、移動先のディレクトリが事前に存在している必要があります。rename
関数は、基本的には名前の変更を行う関数ですが、パスを変更することで移動として機能します。
import os
# ファイルを移動する例
os.rename('source_file.txt', 'destination_directory/source_file.txt')
# フォルダを移動する例
os.rename('source_folder', 'destination_directory/source_folder')
この方法では、source_file.txt
ファイルやsource_folder
フォルダをdestination_directory
に移動しています。
こちらも移動が完了すると、元の場所には何も残りません。
まとめ
この記事では、Pythonを用いたファイルの読み込みと書き込みのプロセス、ファイルやフォルダの作成、名前の変更、移動などについて解説しました。
また、絶対パスと相対パスの違い、open
関数を使ったファイル操作、with open
構文によるリソース管理の重要性、そしてos
モジュールとshutil
モジュールの活用方法についても触れました。
これらの基本的な操作をマスターすることで、データを効果的に管理し、Pythonプログラミングのスキルを向上させることができます。
コメント