Python:创建一个类以读取目录中的文件
我正在自学如何在Python中创建类。目前我能写一个类,能够让我用同一个类画出多种形状,这个功能比较基础。
不过,我在使用类做一些更高级的任务时遇到了困难。例如,我想创建一个类,可以包含一些功能,比如查看某个文件夹里有多少个文件。
我想问的是,怎么才能创建一个类,让它能读取一个文件夹,并告诉我里面有多少个文件呢?
谢谢,抱歉如果我说得不太清楚。
3 个回答
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
来进行通配符匹配等等……
1
os.listdir()
是一个用来获取文件夹内容的函数,它会返回一个列表,里面列出了这个文件夹里的所有东西。如果我理解你的问题没错的话。
所以,如果你想为这个函数创建一个新的类,那么这个类可以包含一个函数的封装。至于你说的“读取一个文件夹”的意思,我不是很明白。
class YourClass:
def __init__(self):
#initialize here
def countFilesInDir(self,directory):
return len(os.listdir(directory))
或者类似的东西
1
你要找的函数是 os.listdir
。
假设你有一个文件夹 /tmp/foo
,里面有两个文件,分别叫 bar
和 baz
:
>>> import os
>>> os.listdir('/tmp/foo')
['baz', 'bar']
当你使用 os.listdir
时,你还需要用到 os.path.isfile
来检查你处理的每个条目是否真的是一个文件,因为这个函数也会返回文件夹的名字。