本記事では、Pythonを使ってファイルディレクトリの作成、パス取得、移動の方法を解説していきます!
Pythonでのファイル操作一覧
本記事では下記一覧で示したディレクトリの操作方法を解説しています!
メソッド名 | 機能 |
---|---|
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() | フォルダの削除 |
新規フォルダの作成
新規フォルダを作成するときは、osモジュールのmakedirs()メソッドを使用します!
import os
os.makedirs('フォルダのパス')
パスは例えば、Cドライブ直下のsampleフォルダ内にtestfolderという名前のフォルダを作成したい場合は下記のように指定してあげます。
os.makedirs('C:/sample/testfolder')
カレントディレクトリの変更
作業中のディレクトリを変更するには、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を減らすことができそうです!
ファイルのサイズを調べる方法
任意のファイルの容量/サイズを調べたい場合には、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(削除したいフォルダのパス)
今回の記事は以上になります!
最後までご覧いただきありがとうございました!