1、os.walk
2、os.path.walk
3、递归
#!/usr/bin/env python
import os
allf1 = []
alld1 = []
def visitDir1(path):
for root, dirpath, filepath in os.walk(path):
for f in filepath:
allf1.append(os.path.join(root, f))
for d in dirpath:
alld1.append(os.path.join(root, d))
allf2 = []
def visitDir2(arg, dirname, names):
for f in names:
allf2.append(os.path.join(dirname, f))
allf3 = []
alld3 = []
def visitDir3(path):
all = [os.path.join(path, f) for f in os.listdir(path)]
dirs = [d for d in all if os.path.isdir(d)]
alld3.extend(dirs)
for d in dirs:
visitDir3(d)
files = [f for f in all if os.path.isfile(f)]
allf3.extend(files)
def test1():
addfile = open("addfile1.dat", "w")
mydir = os.getcwd()
visitDir1(mydir)
ff = [f[len(mydir)+1:len(f)] for f in allf1 if f != __file__]
ff.sort(key = lambda x:x.lower())
fd = [f[len(mydir)+1:len(f)]+"\\" for f in alld1]
fd.sort(key = lambda x:x.lower(), reverse = True)
for f in ff:
print >>addfile, f
print f
for f in fd:
print >>addfile, f
print f
def test2():
addfile = open("addfile2.dat", "w")
mydir = os.getcwd()
os.path.walk(mydir, visitDir2, None)
ff = [f[len(mydir)+1:len(f)] for f in allf2 if f != __file__ and os.path.isfile(f)]
ff.sort(key = lambda x:x.lower())
fd = [f[len(mydir)+1:len(f)]+"\\" for f in allf2 if os.path.isdir(f)]
fd.sort(key = lambda x:x.lower(), reverse = True)
for f in ff:
print >>addfile, f
print f
for f in fd:
print >>addfile, f
print f
def test3():
addfile = open("addfile3.dat", "w")
mydir = os.getcwd()
visitDir3(mydir)
ff = [f[len(mydir)+1:len(f)] for f in allf3 if f != __file__]
ff.sort(key = lambda x:x.lower())
fd = [f[len(mydir)+1:len(f)]+"\\" for f in alld3]
fd.sort(key = lambda x:x.lower(), reverse = True)
for f in ff:
print >>addfile, f
print f
for f in fd:
print >>addfile, f
print f
if __name__=="__main__":
test1()
test2()
test3()
raw_input()
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/677997/viewspace-664909/
,如需转载,请注明出处,否则将追究法律责任。