Python:创建一个类来读取目录中的文件

Python:创建一个类来读取目录中的文件,python,Python,我试图教自己如何用Python制作类。我目前能够编写一个类,使我能够绘制多个形状使用相同的类,这是非常基本的 我在使用类执行更高级的任务时遇到了问题,例如,我希望能够创建一个包含函数的类,例如特定目录中有多少文件 我想我的问题是如何创建一个类来读入目录并告诉我目录中有多少文件 谢谢,如果不清楚,很抱歉。os.listdir()返回目录的内容列表。如果我理解正确的话 因此,如果您想为该函数创建一个新类,则该类将为该函数保存一个函数包装器。不知道“读入目录”是什么意思 或者类似的东西您正在寻找的函数

我试图教自己如何用Python制作类。我目前能够编写一个类,使我能够绘制多个形状使用相同的类,这是非常基本的

我在使用类执行更高级的任务时遇到了问题,例如,我希望能够创建一个包含函数的类,例如特定目录中有多少文件

我想我的问题是如何创建一个类来读入目录并告诉我目录中有多少文件

谢谢,如果不清楚,很抱歉。

os.listdir()
返回目录的内容列表。如果我理解正确的话

因此,如果您想为该函数创建一个新类,则该类将为该函数保存一个函数包装器。不知道“读入目录”是什么意思


或者类似的东西

您正在寻找的函数是

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

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

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

使用类似乎有点过分,但这里有一个起点:

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。
还有一个函数
os.listdir。
一个简单的谷歌搜索就可以了。@Nix它是如何重复的?我知道,但如果我想在一个类中做这件事,我会做同样的事情吗?为什么你需要一个类来列出一个目录?我知道您正在学习,但学习何时编写类也非常重要,不仅仅是如何编写。忽略清晰性问题,您尝试了什么?我的意思是,在调用类时,它可以查看目录,计算文件数并返回值。我知道操作系统模块,如果我在一个类中使用它,它会以完全相同的方式使用吗?这甚至不是正确的python。你不能调用一个类。您可以调用类实例的方法。(专家模式:有
\uuuu call\uuuu
,但我们现在不想讨论它)@Gjordis:请应用PEP-8命名约定。@Matthia当然,我以后会尝试制作更干净的代码片段。我只是写了一个指向正确方向的快速函数。我不会只为一个函数使用一个类,我已经有一些代码可以实现这一点以及其他函数,但我只是对如何将其放入一个类感兴趣
dl = DirectoryLister('/home/jon')
print dl.directory
print dl.count