13,009
回編集
(ページの作成:「== 概要 == Pythonでは、ディレクトリに含まれるファイルの一覧を取得したり、ディレクトリ名を変更したりすることができる。<…」) |
編集の要約なし |
||
26行目: | 26行目: | ||
<br> | <br> | ||
==== 中間ディレクトリも同時に作成する ==== | ==== 中間ディレクトリも同時に作成する ==== | ||
中間ディレクトリも同時に新規作成する場合、<code>os</code>モジュールの<code>makedirs</code>関数を使用する。<br> | |||
<br> | <br> | ||
第1引数に指定したパスが示すディレクトリを新規作成する。<br> | 第1引数に指定したパスが示すディレクトリを新規作成する。<br> | ||
省略可能な第2引数には、新規作成するディレクトリの権限を設定する。( | 省略可能な第2引数には、新規作成するディレクトリの権限を設定する。(省略した場合は、8進数で<code>0o777</code>が設定される)<br> | ||
省略可能な第3引数に<code>True</code>を指定する場合、新規作成するディレクトリが既に存在してもエラーが発生しない。<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> |