Pythoのosモジュールとshutilモジュールによるファイル操作を比較してみた

スポンサーリンク

osモジュールとshutilモジュール

これまで7回に渡って、osモジュール、shutilモジュールの類似した機能を解説してきました。

今回はその総仕上げ。

osモジュールとshutilモジュールのまとめと比較をしていきます。

ということで早速始めていきましょう。

スポンサーリンク

インポート

osモジュール、shutilモジュールともに使う前にインポートが必要です。

ということでインポートの仕方からおさらい。

#os module

import os

#shutil module

import shutil
スポンサーリンク

フォルダの作成

フォルダの作成はosモジュールのみあります。

#os module

import os

os.midir("foldername")
Pythonでファイル・フォルダ操作 〜osモジュールでの名前の取得 os.listdir、フォルダ作成 os.mkdir〜
osモジュールとshutilモジュール前にInkbirdの温度・湿度データをpythonで読み込む際、shutilモジュールでフォルダを中のファイルごと消せるということを紹介しました。まだshutilモジュールの解...
スポンサーリンク

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

ファイル・フォルダの移動はosモジュール、shutilモジュール共にあります。

#os module

import os

os.rename("before", "after")

#shutil module

import shutil

shutil.move("before", "after")

ただしos.renameでフォルダを移動する際、フォルダは空である必要があります。

逆にshutil.moveではフォルダが空でなくても移動することができます。

Pythonでファイル・フォルダ操作 〜osモジュールでの名前の変更・移動 os.rename、削除 os.remove、os.rmdir〜
前回のおさらい前々回よりosモジュールとshutilモジュールを比較するため、ファイル・フォルダ操作に関して解説をしています。前回はファイルの作成方法、書き込み・読み込み方法に関して解説しました。今回はファ...
Pythonのより高度なファイル、フォルダ操作ができるshutilモジュール その3:ファイル・フォルダの移動・名前の変更 shutil.move
前回のおさらい過去5回に渡って、osモジュールとshutilモジュールを比較するため、ファイル・フォルダ操作に関して解説をしています。前回はshutilモジュールのうち、フォルダをコピーする方法 shutil.copytr...
スポンサーリンク

ファイル名・フォルダ名の変更

ファイル名・フォルダ名の変更もosモジュール、shutilモジュール共にあります。

#os module

import os

os.rename("before", "after")

#shutil module

import shutil

shutil.move("before", "after")

フォルダ名を変更する場合、osモジュール、shutilモジュール共に変更するフォルダが空でなくても変更することができます。

Pythonでファイル・フォルダ操作 〜osモジュールでの名前の変更・移動 os.rename、削除 os.remove、os.rmdir〜
前回のおさらい前々回よりosモジュールとshutilモジュールを比較するため、ファイル・フォルダ操作に関して解説をしています。前回はファイルの作成方法、書き込み・読み込み方法に関して解説しました。今回はファ...
Pythonのより高度なファイル、フォルダ操作ができるshutilモジュール その3:ファイル・フォルダの移動・名前の変更 shutil.move
前回のおさらい過去5回に渡って、osモジュールとshutilモジュールを比較するため、ファイル・フォルダ操作に関して解説をしています。前回はshutilモジュールのうち、フォルダをコピーする方法 shutil.copytr...
スポンサーリンク

ファイルのコピー

ファイルをコピーする方法はshutilモジュールにのみあります。

#shutil module

import shutil

shutil.copyfile("before", "after")
Pythonのより高度なファイル、フォルダ操作ができるshutilモジュール その1:ファイルのコピー shutil.copyfile
前回のおさらい過去3回に渡って、osモジュールとshutilモジュールを比較するため、ファイル・フォルダ操作に関して解説をしています。今回はとうとうshutilモジュールに関して解説を進めていきたいと思います。...
スポンサーリンク

フォルダのコピー

フォルダをコピーする方法もshutilモジュールのみあります。

#shutil module

import shutil

shutil.copytree("before", "after")

shutil.copytreeではフォルダの中のファイルやフォルダもコピーしてくれます。

Pythonのより高度なファイル、フォルダ操作ができるshutilモジュール その2:フォルダのコピー shutil.copytree
前回のおさらい過去4回に渡って、osモジュールとshutilモジュールを比較するため、ファイル・フォルダ操作に関して解説をしています。前回はshutilモジュールのうち、ファイルをコピーする方法 shutil.copyfi...
スポンサーリンク

ファイルの削除

ファイルの削除はosモジュールのみあります。

#os module

import os

os.remove("filename")
Pythonでファイル・フォルダ操作 〜osモジュールでの名前の変更・移動 os.rename、削除 os.remove、os.rmdir〜
前回のおさらい前々回よりosモジュールとshutilモジュールを比較するため、ファイル・フォルダ操作に関して解説をしています。前回はファイルの作成方法、書き込み・読み込み方法に関して解説しました。今回はファ...
スポンサーリンク

フォルダの削除

フォルダの削除はosモジュール、shutilモジュールの両方にあります。

#os module

import os

os.rmdir("foldername")

#shutil module

import shutil

shutil.rmtree("foldername")

os.rmdirではフォルダが空でない場合は削除できません。

shutil.rmtreeではフォルダが空でなくても削除することができます。

Pythonでファイル・フォルダ操作 〜osモジュールでの名前の変更・移動 os.rename、削除 os.remove、os.rmdir〜
前回のおさらい前々回よりosモジュールとshutilモジュールを比較するため、ファイル・フォルダ操作に関して解説をしています。前回はファイルの作成方法、書き込み・読み込み方法に関して解説しました。今回はファ...
Pythonのより高度なファイル、フォルダ操作ができるshutilモジュール その4:フォルダの削除 shutil.rmtree
前回のおさらい過去6回に渡って、osモジュールとshutilモジュールを比較するため、ファイル・フォルダ操作に関して解説をしています。前回はファイル・フォルダの移動、名前の変更をするshutil.moveを解説しました。...
スポンサーリンク

表にしてみた

ファイル操作

osモジュールshutilモジュール
移動os.renameshutil.move
名前の変更os.renameshutil.move
コピーなしshutil.copyfile
削除os.removeなし

フォルダ操作

フォルダ内部に
ファイル等の有無
osモジュールshutilモジュール
作成os.mkdirなし
移動os.renameshutil.move
なしshutil.move
名前の変更os.renameshutil.move
os.renameshutil.move
コピーなしshutil.copytree
なしshutil.copytree
削除os.rmdirshutil.rmtree
なしshutil.rmtree
スポンサーリンク

まとめ

7回に渡って、osモジュール、shutilモジュールを解説し、最後に二つのモジュールを比較してみました。

Pythonでデータ解析をする際、ファイル操作は欠かせないものなので、参考になるのではないかなと思います。

こうやって眺めてみると、ファイルがあろうがなかろうが移動だったり、削除だったりしてくれるshutilモジュールの方が高機能に見え、こちらばかりを使いたくなってしまうかもしれません。

しかし時には機能を制限することによって、予想外の事態を起こさないこと、また予想外の事態が起こった時、被害を抑えるという考え方も必要かと思います。

そのため必要以上の機能をプログラムに盛り込まないという判断もありではないでしょうか。

今回のosモジュールとshutilモジュールの比較がそんな感じでみなさんの役に立ってくれたらいいなぁと思っています。

ということでosモジュールとshutilモジュールの比較は一旦これにて終了にしたいと思います。

ではでは今回はこんな感じで。

コメント

タイトルとURLをコピーしました