4

Pythonでクラスを作成する方法を独学しようとしています。私は現在、非常に基本的な同じクラスを使用して複数の形状を描画できるクラスを作成できます。

クラスを使用したより高度なタスクに問題があります。たとえば、特定のディレクトリにあるファイルの数などの機能を含むクラスを作成できるようにしたいと考えています。

私の質問は、ディレクトリを読み取り、ディレクトリ内にいくつのファイルがあるかを教えてくれるクラスをどのように作成すればよいでしょうか?

ありがとう、わかりにくかったらごめんなさい

4

3 に答える 3

1

os.listdir()ディレクトリの内容のリストを返します。質問を正しく理解できれば。

したがって、クラスに新しいクラスを作成する場合、クラスはその関数の関数ラッパーを保持します。「ディレクトリへの読み込み」の意味がわからない

class YourClass:

    def __init__(self):
         #initialize here

    def countFilesInDir(self,directory):
         return len(os.listdir(directory))

またはそのようなもの

于 2013-01-23T13:23:16.723 に答える
1

クラスを使用するのは少しやり過ぎに思えますが、出発点は次のとおりです。

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ワイルドカード マッチングなどを行うことを検討したりすることもできます...

于 2013-01-23T13:26:50.187 に答える
1

お探しの機能はos.listdir.

および/tmp/fooという名前のファイルを含むディレクトリが与えられた場合:barbaz

>>> import os
>>> os.listdir('/tmp/foo')
['baz', 'bar']

を使用する場合、ディレクトリ名も返されるため、処理している各エントリが実際にファイルであるかどうかをテストするos.listdirためにも使用する必要があります。os.path.isfile

于 2013-01-23T13:24:01.193 に答える