Pythonでディレクトリ(フォルダー)やファイル操作を行う方法
Pythonでディレクトリ(フォルダ)とファイルと操作をを行うにはosモジュールを使用します。
またファイルのコピーにはshutilモジュールを使用します。
- 1. カレントディレクトリを取得するos.getcwd()
- 2. カレントディレクトリを移動するos.chdir()
- 3. ディレクトリ、ファイルの存在チェックするos.path.exists()
- 4. ディレクトリかチェックするos.path.isdir()
- 5. ファイルかチェックするos.path.isfile()
- 6. ディレクトリを作成するos.mkdir()またはos.makedirs()
- 7. 絶対パスを取得するos.path.abspath()
- 8. 末尾のファイル名部分を取得するos.path.basename()
- 9. ディレクトリ名部分を取得するos.path.dirname()
- 10. ディレクトリを削除するos.rmdir()
- 11. ファイルサイズを取得するos.path.getsize()
- 12. ファイルのコピーするshutil.copy()もしくはshutil.copytree()
- 13. まとめ
カレントディレクトリを取得するos.getcwd()
カレントディレクトリを取得するにはos.getcwd()を使います。
import os path = os.getcwd() print(path)
カレントディレクトリを移動するos.chdir()
カレントディレクトリを移動するにはos.chdir()を使います。
import os os.chdir( "../../python_test" ) print(path)
ディレクトリ、ファイルの存在チェックするos.path.exists()
ディレクトリ、ファイルの存在をチェックするにはos.path.exists()を使います。
import os filepath = './test.txt' print( os.path.exists( filepath ))
os.path.exists()は指定したディレクトリやファイルが存在すれば「True」、存在しなければ「False」を返します。
ディレクトリかチェックするos.path.isdir()
指定したパスがディレクトリ判断するにはos.path.isdir()を使います。
import os dir_path = './test_dir' print( os.path.isdir( dir_path ))
os.path.isdir()は指定したパスがディレクトリならば「True」、ディレクトリでなければ「False」を返します。
ファイルかチェックするos.path.isfile()
ディレクトリを作成するにはos.path.isfile()を使用します。
import os filepath = './text.txt' print( os.path.isfile( filepath ))
os.path.isfile()は指定したパスがファイルならば「True」、ファイルでなければ「False」を返します。
ディレクトリを作成するos.mkdir()またはos.makedirs()
ディレクトリを作成するにはos.mkdir()またはos.makedirs()を使います。
os.mkdir()は単一のディレクトリを作成します。
パスで指定された最終ディレクトリまでのディレクトリは存在している必要があります。
os.makedirs()は途中で指定されたフォルダーが存在しない場合もすべて作成して最終フォルダーを作成してくれます。
import os os.mkdir( "C:/python_test/tmp/tmpA" ) #「python_test」「tmp」がすでに存在していなければエラーになる os.makedirs( "C:/python_test/tmp/tmp1/tmp2" ) #途中の存在しないフォルダーも作成しながら作成してくれる
絶対パスを取得するos.path.abspath()
os.path.abspath(path)はパス名pathの正規化された絶対パスを返します。
import os filepath = "./dir1/dir2/test.txt" path = os.path.abspath( filepath ) print( path )
上記のコードの実行結果は
C:\dir1\dir2\test.txt
になります。
末尾のファイル名部分を取得するos.path.basename()
os.path.basename(path)はパス名pathの末尾のファイル名部分を返します。
import os filepath = "./dir1/dir2/test.txt" path = os.path.basename( filepath ) print( path )
上記のコードの実行結果は
test.txt
になります。
ディレクトリ名部分を取得するos.path.dirname()
os.path.dirname(path)はパス名pathのディレクトリ名を返します。
import os filepath = "./dir1/dir2/test.txt" path = os.path.dirname( filepath ) print( path )
上記のコードの実行結果は
./dir1/dir2
になります。
ディレクトリを削除するos.rmdir()
ディレクトリを削除するにはos.rmdir()を使用します。
import os os.rmdir( "C:/python_test/tmp/tmp1/tmp2" )
ファイルサイズを取得するos.path.getsize()
ファイルサイズを取得するにはos.path.getsize()を使います。
import os size = os.path.getsize( "./text.txt" )
ファイルのコピーするshutil.copy()もしくはshutil.copytree()
ファイルをコピーするにはshutilモジュールのshutil.copy()もしくはshutil.copytree()を使用します。
shutil.copy()は単一ファイル、shutil.copytree()再帰的にディレクトリをコピーしてくれます。
import os import shutil shutil.copy( "C:/python_test/src_text.txt", "C:/python_test/dest_text.txt') shutil.copytree( "c:/python_test", "C:/python_test_copy")
まとめ
Pythonでディレクトリ(フォルダ)やファイルに対しての操作はosモジュールやshutilモジュールを使用すると簡単にディレクトリやファイルにアクセスすることができるようになります。