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

您正在寻找的功能是os.listdir.

给定一个目录/tmp/foo,其中包含名为barand的文件baz

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

当您使用 时os.listdir,您还需要使用os.path.isfile来测试您正在处理的每个条目是否实际上是一个文件,因为目录名称也会返回。

于 2013-01-23T13:24:01.193 回答
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 回答