Python遍历⽬录的4种⽅法实例介绍1.os.popen运⾏shell列表命令
复制代码代码如下:
def traverseDirByShell(path):
for f in os.popen('ls ' + path):
print f.strip()
2.利⽤glob模块
glob.glob(path)返回带⽬录的⽂件名.通配符和shell相似.path不能包含shell变量.
复制代码代码如下:
def traverseDirByGlob(path):
path = panduser(path)
for f in glob(path + '/*'):
print f.strip()
3.利⽤os.listdir(推荐)
该⽅法返回不带根⽬录的⽂件名或⼦⽬录名
复制代码代码如下:
def traverseDirByListdir(path):
path = panduser(path)
for f in os.listdir(path):
print f.strip()
4.利⽤os.walk(推荐)
返回⼀个包含3个项⽬的元组:当前⽬录名称,⼦⽬录名称,⼦⽂件名称
复制代码代码如下:
def traverseDirByOSWalk(path):
path = panduser(path)
for (dirname, subdir, subfile) in os.walk(path):
#print('dirname is %s, subdir is %s, subfile is %s' % (dirname, subdir, subfile))
print('[' + dirname + ']')
for f in subfile:
xpath语法 pythonprint(os.path.join(dirname, f))
整合代码:
复制代码代码如下:
#!/usr/bin/python
import os
from glob import glob
def printSeparator(func):
def deco(path):
print("call method %s, result is:" % func.__name__)
print("-" * 40)
func(path)
print("=" * 40)
return deco
@printSeparator
def traverseDirByShell(path):
for f in os.popen('ls ' + path):
print f.strip()
@printSeparator
def traverseDirByGlob(path):
path = panduser(path)
for f in glob(path + '/*'):
print f.strip()
@printSeparator
def traverseDirByListdir(path):
path = panduser(path)
for f in os.listdir(path):
print f.strip()
@printSeparator
def traverseDirByOSWalk(path):
path = panduser(path)
for (dirname, subdir, subfile) in os.walk(path):
#print('dirname is %s, subdir is %s, subfile is %s' % (dirname, subdir, subfile))        print('[' + dirname + ']')
for f in subfile:
print(os.path.join(dirname, f))
if __name__ == '__main__':
path = r'~/src/py'
traverseDirByGlob(path)
traverseDirByGlob(path)
traverseDirByListdir(path)
traverseDirByOSWalk(path)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。