好吧,我有一个巨大的文件列表,我想从一个地方复制到另一个地方。我想创建一个类来存储所有这些数据。我希望能够调用两个类实例,一个在一个驱动器中有文件,另一个在另一个驱动器中有文件。然后我得到大小,是否其他驱动器有类似的文件等,然后复制所有内容。我不知道我是否需要fileName类,或者我是否可以把这些都放在fileNames中。有什么提示吗?我有大概的想法吗,还是说我离目标太远了?你知道吗
到目前为止,这就是我所拥有的一切(课程对我来说是一个艰难的概念性飞跃)
class fileNames:
def __init__(self):
fileSizeList = []
filePathList = []
fileList = []
fileNameList.apped(fileName.name)
fileSizeList.append(fileName.size)
filePathList.append(fileName.path)
def makeSizeList(fileList):
for name in fileList:
fileSizeList.append(os.path.getsize(os.path.join(name.path, name))))
class fileName:
def __init__(self, name, path, size):
self.name = name
self.path = path
self.size = size
另一种方法是:你想要一个类来表示一个文件的数据,而不是一个类来表示一堆数据。为此,您只需创建一个普通列表,并将文件数据实例放在该列表中。您可以使用普通函数来创建这些列表。你知道吗
fileName
是一个糟糕的名称选择,因为类代表的不仅仅是文件名。称之为file
也是一个坏主意,因为这是一个内置的东西的名字,你用它来实际读取文件。:)有单独的“name”和“path”字段是多余的:名称是路径的一部分。除非您想显式地拆分它—为此,请使用
os.path.split
。你知道吗您可以尝试使用
namedtuple
来代替为文件数据创建一个完整的类,这样可以省去编写所有类的麻烦,并且只需要开始引用文件的.path
和.size
即可。你知道吗比如:
要处理包含子文件夹和其他内容的目录树,应该查找
os.walk
函数。你知道吗相关问题 更多 >
编程相关推荐