私が使う os.listdir
とそれは正常に動作しますが、リスト内のサブディレクトリも取得します。これは私が望んでいるものではありません。ファイルだけが必要です。
そのためにどの機能を使用する必要がありますか?
私も見ましたos.walk
そして、それは私が望むもののようですが、それがどのように機能するのか分かりません。
ディレクトリを除外する必要があります。 os.listdir()
は、指定されたパス内のすべてのnamesをリストします。これには os.path.isdir()
を使用できます。
_basepath = '/path/to/directory'
for fname in os.listdir(basepath):
path = os.path.join(basepath, fname)
if os.path.isdir(path):
# skip directories
continue
_
os.walk()
は、内部で同じ作業を行います。サブディレクトリを再帰する必要がない限り、ここでos.walk()
を使用する必要はありません。
リスト内包形式の素敵な小さなワンライナーを次に示します。
[f for f in os.listdir(your_directory) if os.path.isfile(os.path.join(your_directory, f))]
これは、指定されたyour_directory
内のファイル名のreturn
a list
になります。
import os
directoryOfChoice = "C:\\" # Replace with a directory of choice!!!
filter(os.path.isfile, os.listdir(directoryOfChoice))
追伸: os.getcwd() 現在のディレクトリを返します。
for fname in os.listdir('.'):
if os.path.isdir(fname):
pass # do your stuff here for directory
else:
pass # do your stuff here for regular file