python遍历目录_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 = 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)
代码节选自codego.net
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/30193029/viewspace-1571247/,如需转载,请注明出处,否则将追究法律责任。
python遍历目录_Python遍历目录的4种方法相关推荐
- python 字符串拼接_Python字符串拼接的6种方法(转)
add by zhj: 对于多行字符串连接,第6种连接方法很方便,连接时不会添加额外的空格. 1. 加号 第一种,有编程经验的人,估计都知道很多语言里面是用加号连接两个字符串,Python里面也是如此 ...
- 用python打开视频_Python读取视频的两种方法(imageio和cv2)
用python读取视频有两种主要方法,大家可依据自己的需求进行使用. 方法一: 使用imageio库,没有安装的可用pip安装或自己下载,安装好后重启终端即可调用. import pylab impo ...
- python图片保存_python读取和保存图片5种方法对比
python读取和保存图片5种方法对比 python中对象之间的赋值是按引用传递的,如果需要拷贝对象,需要用到标准库中的copy模块 方法一:利用 PIL 中的 Image 函数 这个函数读取出来不是 ...
- python字符串百分号_Python字符串格式化的2种方法
本文介绍了Python字符串格式化,主要有两种方法,分享给大家,具体如下 用于字符串的拼接,性能更优. 字符串格式化有两种方式:百分号方式.format方式. 百分号方式比较老,而format方式是比 ...
- python矩阵转置_Python 矩阵转置的几种方法小结
我就废话不多说了,直接上代码吧! #Python的matrix转置 matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]] def printmatrix(m): fo ...
- python 字符串替换_python字符串替换的2种方法
一.python字符串替换可以用两种方法实现: 1.用字符串本身的方法 2.用正则来替换字符串 下面用个例子来实验: a = 'hello word' 我把a字符串里的word替换为python 1. ...
- python 矩阵类型转换_Python 矩阵转置的几种方法小结
我就废话不多说了,直接上代码吧! #Python的matrix转置 matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]] def printmatrix(m): fo ...
- python线性方程组求解_python求解方程组的三种方法
python求解方程组的三种方法: Numpy求解方程组x + 2y = 3 4x + 5y = 6 当然我们可以手动写出解析解,然后写一个函数来求解,这实际上只是用 Python 来单纯做" ...
- python词频统计_python统计词频的三种方法
1.利用字典dict来完成统计 #举例: a = [1 2 3 1 1 2] dict = {} for key in a: dict[key] = dict.get(key 0) + 1 #字典的g ...
- python中格式化_Python中格式化的两种方法
在Python中,采用的格式化方式和C语言是一致的,用%实现,举例如下:>>> 'Hello, %s' % 'world' 'Hello, world' >>> ' ...
最新文章
- vmware6.5实现基于win2003的群集
- php 开源 流量统计,5款开源的PHP网站流量统计应用程序
- https ddos攻击——由于有了认证和加解密 后果更严重 看绿盟的产品目前对于https的ddos cc攻击需要基于内容做检测...
- POJ2503 UVA10282 Babelfish
- 语义分割 | segnet 制作自己的数据,如何训练,如何测试,如何评价
- (转)C#网络编程(订立协议和发送文件) - Part.4
- Kinect for Windows SDK发布
- 关于Cocos2d-x随机数的生成
- Zabbix监控网络设备讲解
- linux之sed使用
- 220.存在重复元素III
- Sublime Text 2 - 性感无比的代码编辑器!程序员必备神器!跨平台支持Win/Mac/Linux...
- torch.nn到底是什么?
- 2021西湖论剑misc——Yusa的小秘密
- PHP实现短网址还原
- java 抽象类和接口——抽象类
- 阿里云主机免费申请级网站配置
- Activiti7实战入门一:请假单流程的制定以及代码实现
- java.sql.SQLException: Access denied for user ‘‘@‘localhost‘ (using password: YES)问题
- mt4 python神经网络_【零基础】MT4量化入门二:关于MT4的总结
热门文章
- 反思PHP多个字符串函数
- jQuery中的for循环var与let区别
- Ascii排序(按字母从小到大排序),并以url地址传参方式拼接
- java中spring的注解_spring中的各种注解解析
- 小米路由器sn算ssh密码_【玩转路由】小米路由器开启SSH
- 大一计算机理论考试知识点,计算机一级考试理论知识点整理.doc
- linux如何导出加密卡私钥,linux – 如何使用gpg中的私钥加密文件
- 【ruoyi若依】为当前页添加显示事件
- 【若依(ruoyi)】swagger 接口 @ApiModelProperty 添加枚举值说明
- 【sprinb-boot】@ComponentScan 使用