秦皇岛seo博主拥有多年seo,网络营销推广经验,曾服务于多家中大型企业,众多成功案例,可为您提供专业的网站seo,网络营销推广,网站建设等服务。点击这里给我发消息

Python遍历目录的4种方法实例介绍

编程代码 秦皇岛seo 689℃ 0评论

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 = os.path.expanduser(path)
for f in glob(path + ‘/*’):
print f.strip()

3.利用os.listdir(推荐)

该方法返回不带根目录的文件名或子目录名
代码如下:
def traverseDirByListdir(path):
path = os.path.expanduser(path)
for f in os.listdir(path):
print f.strip()

4.利用os.walk(推荐)

返回一个包含3个项目的元组:当前目录名称,子目录名称,子文件名称
代码如下:
def traverseDirByOSWalk(path):
path = os.path.expanduser(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))

整合代码:
代码如下:
#!/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 = os.path.expanduser(path)
for f in glob(path + ‘/*’):
print f.strip()

@printSeparator
def traverseDirByListdir(path):
path = os.path.expanduser(path)
for f in os.listdir(path):
print f.strip()

@printSeparator
def traverseDirByOSWalk(path):
path = os.path.expanduser(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)

转载请注明:老街华纳公司开户-MD62333 » Python遍历目录的4种方法实例介绍

喜欢 (0)or分享 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址