「Pythonの基礎 - ディレクトリ」の版間の差分

ナビゲーションに移動 検索に移動
編集の要約なし
(ページの作成:「== 概要 == Pythonでは、ディレクトリに含まれるファイルの一覧を取得したり、ディレクトリ名を変更したりすることができる。<…」)
 
編集の要約なし
26行目: 26行目:
<br>
<br>
==== 中間ディレクトリも同時に作成する ====
==== 中間ディレクトリも同時に作成する ====
中間ディレクトリも同時に新規作成する場合、osモジュールのmakedirs関数を使用する。<br>
中間ディレクトリも同時に新規作成する場合、<code>os</code>モジュールの<code>makedirs</code>関数を使用する。<br>
<br>
<br>
第1引数に指定したパスが示すディレクトリを新規作成する。<br>
第1引数に指定したパスが示すディレクトリを新規作成する。<br>
省略可能な第2引数には、新規作成するディレクトリの権限を設定する。(省略した場合は、8進数で0o777が設定される)<br>
省略可能な第2引数には、新規作成するディレクトリの権限を設定する。(省略した場合は、8進数で<code>0o777</code>が設定される)<br>
省略可能な第3引数にTrueを指定する場合、新規作成するディレクトリが既に存在してもエラーが発生しない。<br>
省略可能な第3引数に<code>True</code>を指定する場合、新規作成するディレクトリが既に存在してもエラーが発生しない。<br>
新規作成するディレクトリが既に存在する場合、引数を省略するか、明示的にexist_ok = Falseを指定すると例外FileExistsErrorが発生する。<br>
新規作成するディレクトリが既に存在する場合、引数を省略するか、明示的に<code>exist_ok = False</code>を指定すると例外<code>FileExistsError</code>が発生する。<br>
  <syntaxhighlight lang="python">
  <syntaxhighlight lang="python">
  os.makedirs(name, mode = 0o777, exist_ok = False)
  os.makedirs(name, mode = 0o777, exist_ok = False)
78行目: 78行目:
  path = './test/movie'
  path = './test/movie'
  shutil.rmtree(path)
  shutil.rmtree(path)
</syntaxhighlight>
<br><br>
== ディレクトリの作成 / 削除 (pathlibモジュールの使用) ==
==== ディレクトリの作成 (pathlibモジュールの使用) ====
ディレクトリを新規作成する場合は、<code>pathlib</code>モジュールにある<code>Path</code>クラスの<code>mkdir</code>メソッドを使用する。<br>
<br>
省略可能な第1引数には、新規作成するディレクトリの権限を設定する。(省略された場合は、8進数で<code>0o777</code>が設定される)
省略可能な第2引数に<code>True</code>を指定する場合、中間ディレクトリを自動的に作成する。
省略可能な第3引数に<code>True</code>を指定する場合、新規作成するディレクトリが存在していてもエラーにはならない。
<syntaxhighlight lang="python">
Path.mkdir(mode=0o777, parents=False, exist_ok=False)
</syntaxhighlight>
<br>
以下の例では、新規作成するディレクトリを示すパスから<code>Path</code>クラスのインスタンスを生成した後、<code>mkdir</code>メソッドを使用している。<br>
<code>mkdir</code>メソッドは中間ディレクトリを自動的に作成するため、中間ディレクトリである./testディレクトリが存在しない場合は、<br>
./testディレクトリを作成した後、指定のパスのディレクトリを作成する。<br>
<syntaxhighlight lang="python">
import pathlib
p = pathlib.Path('./test/back')
p.mkdir(parents = True)
</syntaxhighlight>
<br>
==== ディレクトリの削除 (pathlibモジュールの使用) ====
ディレクトリを削除する場合、<code>pathlib</code>モジュールにある<code>Path</code>クラスの<code>rmdir</code>メソッドを使用する。<br>
<br>
ただし、ディレクトリは空である必要がある。<br>
削除するディレクトリが空ではない場合、例外<code>OSError</code>が発生する。<br>
<syntaxhighlight lang="python">
Path.rmdir()
</syntaxhighlight>
<br>
以下の例では、削除するディレクトリを示すパスから<code>Path</code>クラスのインスタンスを作成した後、<code>rmdir</code>メソッドを使用している。<br>
<syntaxhighlight lang="python">
import pathlib
p = pathlib.Path('./test/movie')
p.rmdir()
  </syntaxhighlight>
  </syntaxhighlight>
<br><br>
<br><br>

案内メニュー