import os
os.walk(top[, topdown=True[, οnerrοr=None[, followlinks=False]]])
opdown --可选,为 True,则优先遍历 top 目录,否则优先遍历 top 的子目录(默认为开启)。如果 topdown 参数为 True,walk 会遍历top文件夹,与top 文件夹中每一个子目录。
onerror – 可选,需要一个 callable 对象,当 walk 需要异常时,会调用。
followlinks – 可选,如果为 True,则会遍历目录下的快捷方式(linux 下是软连接 symbolic link )实际所指的目录(默认关闭),如果为 False,则优先遍历 top 的子目录。
class GetWalk(object):
def __init__(self):
self.files = []
def get_files(self, paths):
ds = GetWalk.get_dirs(paths)
for d in ds:
for root, dirs, files in os.walk(d, topdown=True):
for name in files:
self.files.append(os.path.join(root, name))
# files = [temp.append(i) for i in self.files if i not in temp]
print(len(self.files), ':', self.files)
return self.files
@staticmethod
def get_dirs(p):
dir = [p]
for root, dirs, files in os.walk(p, topdown=True):
print(dirs)
for d in dirs:
dir.append(os.path.join(root, d))
return dir
if __name__ == '__main__':
paths = r"D:\360MoveData\Users\lenovo\Music\Desktop\t"
g = GetWalk()
print(g.get_dirs(paths))
# g.get_files(paths)
动态语言与静态语言的不同:
动态语言:可以在运行的过程中,修改代码
静态语言:编译时已经确定好代码,运行过程中不能修改