我有一段代码,用来创建文件列表并按其大小排序。在这里:
class DataScript(object):
def __init__(self, index, name, size):
self.index = index
self.name = name
self.size = size
def __cmp__(self, other):
if hasattr(other, 'getKey'):
return self.getKey().__cmp__(other.getKey())
def getKey(self):
return self.size
def __iter__(self):
return self
def __next__(self):
self.index += 1
try:
return data[self.index - 1]
except IndexError:
self.idx = 0
raise StopIteration # Done iterating.
resultList = []
data = [d for d in os.listdir(dirpath) if '_DATA_TABLE' in d]
i=0
for file in data:
fileinfo = os.stat(join(dirpath, file))
file_obj = DataScript(i, file, float(fileinfo.st_size))
if isinstance(file_obj, DataScript):
resultList.extend(file_obj)
i=i+1
items = resultList
for i in range(len(items)):
for j in range(len(items) - 1 - i):
item1 = items[j]
item2 = items[j+1]
if isinstance(item1, DataScript) and isinstance(item2, DataScript):
if item1.__cmp__(item2)>0:
items[j] = item2
items[j+1] = item1
resultList = items
一切正常,但并不完全如预期的那样。最后的结果列表不是DataScript对象的排序列表,而是字符串。为什么? 结果我最后的分类部分不起作用
你可能想
append
而不是extend
:相关问题 更多 >
编程相关推荐