Python

【Python】ファイルの操作方法一覧、shutilモジュールも紹介

本記事では、Pythonを使ってファイルディレクトリの作成、パス取得、移動の方法を解説していきます!

【2024年最新版】Python×Excel自動化おすすめ書籍5選Pythonを用いてExcelの処理を自動化し業務効率化を実践したい方におすすめな書籍を紹介しています! 2023年に出版されているものの中から評価の高いものや私自身が役に立ったと感じたものを紹介しています! 是非参考にしてみてください!...
[Python/tkinter] Filedialog ファイルを開くためのダイアログを表示してみよう!ファイルダイアログを表示させるための tkinter.filedialogについて解説しています。本記事では、askopenfilenameの使い方やウィンドウからファイルダイアログを表示させる方法を知ることができます!...

Pythonでのファイル操作一覧

eye catch1

本記事では下記一覧で示したディレクトリの操作方法を解説しています!

メソッド名機能
os.makedirs()新規フォルダ作成
os.chdir()ディレクトリの変更
os.path.abspath()絶対パスの取得
os.path.relpath()相対パスの取得
os.path.exists()パスが正常かどうか判別
os.path.isfile()パスが正常かどうか判別
os.path.isdir()パスが正常かどうか判別
os.path.getsize()ファイルのサイズ取得

その他にも、Pythonに付属している「shutil」モジュールにもファイルのコピーや移動、削除、名前の変更などのメソッドが容易されています!

shutil.copy()ファイルのコピー
shutil.copytree()フォルダのコピー
shutil.move()ファイルの移動
shutil.move()フォルダの移動
os.unlink()ファイルの削除
shutil.rmtree()フォルダの削除

新規フォルダの作成

eyecatch2

新規フォルダを作成するときは、osモジュールmakedirs()メソッドを使用します!

import os
os.makedirs('フォルダのパス')

パスは例えば、Cドライブ直下のsampleフォルダ内にtestfolderという名前のフォルダを作成したい場合は下記のように指定してあげます。

os.makedirs('C:/sample/testfolder')

カレントディレクトリの変更

eyecatch3

作業中のディレクトリを変更するには、osモジュールのchdir()メソッドを使用します。

import os
os.chdir('変更したいパスを指定')

ここで指定するパスは絶対パスであれば問題なく変更できますが、相対パスを使用する場合はカレントディレクトリのパスが正しくないと変更できませんので注意してください。

すらいむ管理人

続いて絶対パスと相対パスそれぞれの取得方法を紹介していきます!

カレントディレクトリのパス取得

パスには絶対パスと相対パスがあります。

絶対パス:ルートフォルダからのパス(WindowsであればCドライブ)
相対パス:カレントディレクトリからのパス

絶対パスの取得

絶対パスを取得する場合は、osモジュールのpath.abspath()を使用します。

import os
os.path.abspath('絶対パスを取得したいパス')

相対パスの取得

相対パスを取得する場合は、osモジュールのpath.relpath()を使用します。

import os
os.path.relpath(path, start)

第一引数(path):相対パスを取得したいディレクトリのパス
第二引数(start):どのディレクトリからのパスを取得したいか指定

すらいむ管理人

つまり、第二引数で指定したstart位置からの相対パスが取得できます!

取得したパスが正常かどうかの判別

ここで取得したパスが正しく指定されていないとプログラムが中断されてしまったりErrorを引き起こしてしまう恐れがあります。

そのため、事前にパスが正常なものであるかどうかを判別することが大切です。
実際にosモジュールの中にパスが正しいかどうかを判別できるメソッドがありますので紹介していきます!

① 指定パスにファイル/フォルダが存在するか判別

指定パスにファイル/フォルダが存在するかどうか判別する際には、osモジュールのpath.exists()メソッドを使用します。

import os
os.path.exists(path)

実際に指定パスにファイル/フォルダが存在していた場合にはTrueを返します。存在しない場合はFalseを返してくれます!

② 指定パスにファイルが存在するか判別

指定パスにファイルが存在するかどうか判別する場合には、osモジュールのpath.isfile()メソッドを使用します。

import os
os.path.isfile(path)

実際に指定パスにファイルが存在していた場合にはTrueを返します。存在しない場合はFalseを返してくれます!

③ 指定パスにフォルダが存在するか判別

指定パスにフォルダが存在するかどうか判別する場合には、osモジュールのpath.isdir()メソッドを使用します。

import os
os.path.isdir(path)

実際に指定パスにフォルダが存在していた場合にはTrueを返します。存在しない場合はFalseを返してくれます!

すらいむ管理人

これらを駆使すればプログラム実行時のErrorを減らすことができそうです!

ファイルのサイズを調べる方法

eyecatch6

任意のファイルの容量/サイズを調べたい場合には、osモジュールのpath.getsize()メソッドを使用します。

import os
os.path.getsize(ファイルのパス)

ここで取得したファイルのサイズはバイト単位で取得されます。

shutilモジュールによるファイル操作方法

shutilモジュールは、Pythonに付属しているモジュールで種々のファイル操作のためのメソッドが用意されています。

今回は、コピー、移動、削除、名前の変更方法について紹介していきます!

ファイル/フォルダのコピー

① ファイルのコピー

任意のファイルを指定したパスへコピーする際は、shutil.copy()メソッドを使用します。

import shutil
shutil.copy('コピーしたいファイルのパス', 'コピー先のパス')

② フォルダのコピー

任意のフォルダを指定したパスへコピーする際は、shutil.copytree()メソッドを使用します。

import shutil
shutil.copytree('コピーしたいフォルダのパス', 'コピー先のパス')

ファイル/フォルダの移動

① ファイルの移動

任意のファイルを指定したパスへ移動させたい場合は、shutil.move()メソッドを使用します

import shutil
shutil.move(’移動したいファイルパス’, '移動先のパス')

② フォルダの移動

任意のフォルダを指定したパスへ移動させたい場合は、同様にshutil.move()メソッドを使用して、フォルダのパスを指定してあげるだけです!

import shutil
shutil.move(’移動したいフォルダパス’, '移動先のパス')

ファイル/フォルダの削除

① ファイルの削除

任意のファイルを削除したい場合は、osモジュールのunlink()メソッドを使用します。

ここで指定したパスのファイルを完全に削除できます。

import os
os.unlink(削除したいファイルのパス)

② フォルダの削除

続いてフォルダの削除方法です。

空のフォルダを削除する場合は、osモジュールのrmdir()メソッドを使用します。

import os
os.rmdir(削除したいフォルダのパス)

フォルダの中身が空出ない場合は削除することができません!

フォルダを中見ごとすべて削除する場合は、osモジュールのshutil.rmtree()メソッドを使用します。

import shutil
shutil.rmtree(削除したいフォルダのパス)

rmtree()であれば、フォルダ内にデータが存在している場合でもフォルダごとまとめて削除することができます!

今回の記事は以上になります!
最後までご覧いただきありがとうございました!

【2024年最新版】Python×Excel自動化おすすめ書籍5選Pythonを用いてExcelの処理を自動化し業務効率化を実践したい方におすすめな書籍を紹介しています! 2023年に出版されているものの中から評価の高いものや私自身が役に立ったと感じたものを紹介しています! 是非参考にしてみてください!...