import os,stat
class DirectoryStatWalker:
def __init__(self,directory):
self.stack=[directory]
self.files=[]
self.index=0
def __getitem__(self,index):
while 1:
try:
file=self.files[self.index]
self.index=self.index+1
except IndexError:
self.directory = self.stack.pop()
self.files = os.listdir(self.directory)
self.index = 0
else:
fullname = os.path.join(self.directory,file)
st = os.stat(fullname)
mode = st[stat.ST_MODE]
if stat.S_ISDIR(mode) and not stat.S_ISLNK(mode):
self.stack.append(fullname)
return fullname,st
for file,st in DirectoryStatWalker(r'F:btsyncmovie'):
print(file,st[stat.ST_SIZE])
|