パチンコ 牙 狼k8 カジノ[解決!Python]ディレクトリを作成/削除するには:pathlibモジュール編仮想通貨カジノパチンコ魔界 神 の 盾
鬼 滅 の 刃 無限 列車 映画 館 4dxk8 カジノ
爆砕 富山 パチスロ連載目次
from pathlib import Path# Path.mkdirメソッドを使ったディレクトリ作成target_dir = Path(‘sample_dir')target_dir.mkdir()# ディレクトリが既に存在している場合target_dir.mkdir() # FileExistsErrortarget_dir.mkdir(exist_ok=True) # OKtarget = Path(‘tmp')target.touch() # ファイルを作成target.mkdir(exist_ok=True) # FileExistsError:既存のファイルに対しては例外# Path.mkdirメソッドを使った再帰的なディレクトリ作成target_dir = Path(‘sample_dir/dir2/dir3')target_dir.mkdir() # FileNotFoundError:dir2ディレクトリがなくdir3は作成不可target_dir.mkdir(parents=True) # OK:parents=Trueで足りない親ディレクトリを作成# Path.rmdirメソッドを使ったディレクトリ削除target_dir = Path(‘sample_dir/dir2/dir3')target_dir.rmdir()# sample_dir/dir2ディレクトリまでは削除されずに残っているdirs = [item for item in Path(‘sample_dir').iterdir()]print(dirs) # [PosixPath(‘sample_dir/dir2')]/[WindowsPath(‘sample_dir/dir2')]dirs = [item for item in Path(‘sample_dir/dir2').iterdir()]print(dirs) # []target_dir = Path(‘sample_dir')target_dir.rmdir() # OSError:dir2ディレクトリがあるので削除できないtarget_dir = Path(‘sample_dir/dir2')target_dir.rmdir()target_dir = Path(‘sample_dir')target_dir.rmdir()# os.removedirs関数はPathオブジェクトを受け取れるimport ostarget_dir = Path(‘sample_dir/dir2/dir3')target_dir.mkdir(parents=True)os.removedirs(target_dir) # 3つのディレクトリをまとめて削除# 指定したディレクトリの内容を全て削除するimport shutilshutil.rmtree(‘sample_dir')
ディレクトリの作成/削除に使えるモジュール
Pythonのコードからファイルシステム上でディレクトリを作成したり削除したりするには幾つかの方法がある。
osモジュールを使用するpathlibモジュールを使用するshutilモジュールを使用する(再帰的なディレクトリ削除)
本稿ではこのうちpathlibモジュールを使用する方法とshutilモジュールのrmtree関数を使ってディレクトリを再帰的に削除する方法を紹介する。osモジュールを使ったディレクトリの作成と削除については「ディレクトリを作成/削除するには:osモジュール編」を参照されたい。
Path.mkdirメソッドを使ったディレクトリ作成
pathlibモジュールが提供するPathクラスを利用すると、さまざまなOSプラットフォームにおけるパス操作(ディレクトリやファイルの操作)を抽象化できる。Pathクラスを使ってディレクトリを作成するには、Pathクラス(実際にはPosixPathクラスやWindowsPathクラスのインスタンスとなる)が持つmkdirインスタンスメソッドを使用する。
以下に例を示す。
from pathlib import Pathtarget_dir = Path(‘sample_dir')target_dir.mkdir()
この例ではsample_dirディレクトリを表すPathクラスのインスタンスを作成して、そのmkdirメソッドを呼び出している。これにより、カレントディレクトリの直下にsample_dirディレクトリが作成される。
mkdirメソッドで作成しようとしたディレクトリが既に存在している場合には、デフォルトではFileExistsError例外が発生する。例外の発生を抑制するには、exist_okパラメーターにTrueを指定する。その場合、作成しようとしたディレクトリが既に存在している場合でも例外が発生しないようになる。
target_dir.mkdir() # FileExistsErrortarget_dir.mkdir(exist_ok=True) # OK
ただし、mkdirメソッドで作成しようとしたディレクトリと同名の「ファイル」が存在していた場合には、やはりFileExistsError例外が発生することには注意しておこう。
target = Path(‘tmp')target.touch() # ファイルを作成target.mkdir(exist_ok=True) # FileExistsError:既存ファイルに対しては例外が発生
osモジュールにはmakedirs関数があり、これを使うと複数階層のディレクトリを再帰的に作成できる。Path.mkdirメソッドでも同様な処理が可能だ。これには、Path.mkdirメソッドのparentsパラメーターにTrueを指定すればよい。
以下にsample_dir/dir2/dir3ディレクトリを作成する例を示す(この時点では上のコードによりsample_dirディレクトリが存在している状態とする)。
target_dir = Path(‘sample_dir/dir2/dir3')target_dir.mkdir() # FileNotFoundError:dir2ディレクトリがなくdir3は作成不可target_dir.mkdir(parents=True) # OK:parents=Trueで足りない親ディレクトリを作成
2行目(最初のmkdirメソッド呼び出し)では、FileNotFoundError例外が発生する。これは上のコード例でsample_dirディレクトリを作成した状態で、sample_dir/dir2/dir3ディレクトリを作成しようとしたが、中間のdir2ディレクトリがないためにdir3ディレクトリを作成できないためだ。
一方、3行目(2つ目のmkdirメソッド呼び出し)ではparentsパラメーターにTrueを指定している。これにより、中間のdir2ディレクトリが自動的に作成され、最終的にsample_dir/dir2/dir3ディレクトリが作成される。
Path.rmdirメソッドを使ったディレクトリ削除#CmsMembersControl .CmsMembersControlIn {width:100%;background:url(https://image.itmedia.co.jp/images/spacer.gif) #DDD;opacity:0.05;filter:progid:DXImageTransform.Microsoft.Alpha(Enabled=1,Style=0,Opacity=5);z-index:1;}続きを閲覧するには、ブラウザの JavaScript の設定を有効にする必要があります。仮想通貨カジノパチンコ仲介 人 サッカー