Pythonでクラスを作成する方法を独学しようとしています。私は現在、非常に基本的な同じクラスを使用して複数の形状を描画できるクラスを作成できます。
クラスを使用したより高度なタスクに問題があります。たとえば、特定のディレクトリにあるファイルの数などの機能を含むクラスを作成できるようにしたいと考えています。
私の質問は、ディレクトリを読み取り、ディレクトリ内にいくつのファイルがあるかを教えてくれるクラスをどのように作成すればよいでしょうか?
ありがとう、わかりにくかったらごめんなさい
Pythonでクラスを作成する方法を独学しようとしています。私は現在、非常に基本的な同じクラスを使用して複数の形状を描画できるクラスを作成できます。
クラスを使用したより高度なタスクに問題があります。たとえば、特定のディレクトリにあるファイルの数などの機能を含むクラスを作成できるようにしたいと考えています。
私の質問は、ディレクトリを読み取り、ディレクトリ内にいくつのファイルがあるかを教えてくれるクラスをどのように作成すればよいでしょうか?
ありがとう、わかりにくかったらごめんなさい
os.listdir()
ディレクトリの内容のリストを返します。質問を正しく理解できれば。
したがって、クラスに新しいクラスを作成する場合、クラスはその関数の関数ラッパーを保持します。「ディレクトリへの読み込み」の意味がわからない
class YourClass:
def __init__(self):
#initialize here
def countFilesInDir(self,directory):
return len(os.listdir(directory))
またはそのようなもの
クラスを使用するのは少しやり過ぎに思えますが、出発点は次のとおりです。
import os
class DirectoryLister(object):
def __init__(self, *args):
self.directory = os.listdir(*args)
@property
def count(self):
return len(self.directory)
次のように使用します。
dl = DirectoryLister('/home/jon')
print dl.directory
print dl.count
また、ファイル以外を除外するために他の引数を提供したり、glob
ワイルドカード マッチングなどを行うことを検討したりすることもできます...
お探しの機能はos.listdir
.
および/tmp/foo
という名前のファイルを含むディレクトリが与えられた場合:bar
baz
>>> import os
>>> os.listdir('/tmp/foo')
['baz', 'bar']
を使用する場合、ディレクトリ名も返されるため、処理している各エントリが実際にファイルであるかどうかをテストするos.listdir
ためにも使用する必要があります。os.path.isfile