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

ナビゲーションに移動 検索に移動
 
647行目: 647行目:
     else:
     else:
       print('[D]:' + i.name + ' ' + i.path)
       print('[D]:' + i.name + ' ' + i.path)
</syntaxhighlight>
<br><br>
== ディレクトリに含まれるファイルとディレクトリの一覧の取得 (pathlibモジュールの使用) ==
==== ファイルとディレクトリの一覧の取得 (pathlibモジュールの使用) ====
指定したディレクトリに含まれるファイルとディレクトリの一覧を取得する場合、<code>pathlib</code>にある<code>Path</code>クラスの<code>iterdir</code>メソッドを使用する。<br>
<br>
ディレクトリに含まれるファイルやディレクトリを表す<code>Path</code>クラスのオブジェクトのイテレータを返す。<br>
<syntaxhighlight lang="python">
Path.iterdir()
</syntaxhighlight>
<br>
以下の例では、イテレータから要素を1つ取り出してパスを出力している。<br>
<syntaxhighlight lang="python">
import pathlib
p = pathlib.Path('./test/')
itr = p.iterdir()
childp = next(itr)
print(childp)
# 出力
address.txt
</syntaxhighlight>
<br>
以下の例では、指定したパスに含まれるファイル名およびディレクトリ名と、それぞれのパスを取得して画面に出力している。<br>
<syntaxhighlight lang="python">
import pathlib
p = pathlib.Path('./test/')
for i in p.iterdir():
    print(i)
</syntaxhighlight>
<br>
==== ファイルとディレクトリの判別 (pathlibモジュールの使用) ====
指定したパスにおいて、ファイルまたはディレクトリを判別する場合、<code>pathlib</code>モジュールにある<code>Path</code>クラスの<code>is_file</code>関数および<code>is_dir</code>メソッドを使用する。<br>
<br>
<code>is_file</code>メソッドは、引数に指定したパスが存在、かつ、ファイルの場合は<code>True</code>を返す。<br>
<syntaxhighlight lang="python">
Path.is_file()
</syntaxhighlight>
<br>
<code>is_dir</code>メソッドは、引数に指定したパスが存在、かつ、ディレクトリの場合は<code>True</code>を返す。<br>
<syntaxhighlight lang="python">
Path.is_dir()
</syntaxhighlight>
<br>
<code>is_file</code>メソッドと<code>is_dir</code>メソッドは、ファイルおよびディレクトリが存在しない場合は<code>False</code>を返す。<br>
<syntaxhighlight lang="python">
import pathlib
p = pathlib.Path('./test/')
for i in p.iterdir():
    if i.is_file():
      print(str(i) + ' is File')
    else:
      print(str(i) + ' is Directory')
# 出力
False
True
True
False
</syntaxhighlight>
<br>
以下の例では、./testディレクトリに含まれるファイルとディレクトリの一覧を取得して、ファイルの場合は[F] + ファイル名、ディレクトリの場合は[D] + ディレクトリ名を出力している。<br>
<syntaxhighlight lang="python">
import pathlib
p = pathlib.Path('./test/')
for i in p.iterdir():
    if i.is_file():
      print('[F]:' + str(i))
    else:
      print('[D]:' + str(i))
  </syntaxhighlight>
  </syntaxhighlight>
<br><br>
<br><br>

案内メニュー