Python 获取指定文件夹下的目录和文件的实现
Python  /  管理员 发布于 7年前   276
经常有需要扫描目录,对文件做批量处理的需求,所以对目录处理这块做了下学习和总结。Python 中扫描目录有两种方法:os.listdir 和 os.walk。
一、os.listdir 方法
os.listdir() 方法用于返回指定的目录下包含的文件或子目录的名字的列表。这个列表以字母顺序。其得到的是仅当前路径下的文件名,不包括子目录中的文件,如果需要得到所有文件需要递归。 它也不包括 '.' 和 '..' 即使它在目录中。
语法格式如下:
os.listdir(path)
实例代码
def list_dir(file_dir): ''' 通过 listdir 得到的是仅当前路径下的文件名,不包括子目录中的文件,如果需要得到所有文件需要递归 ''' print'\n\n<><><><><><> listdir <><><><><><>' print "current dir : {0}".format(file_dir) dir_list = os.listdir(file_dir) for cur_file in dir_list: # 获取文件的绝对路径 path = os.path.join(file_dir, cur_file) if os.path.isfile(path): # 判断是否是文件还是目录需要用绝对路径 print "{0} : is file!".format(cur_file) if os.path.isdir(path): print "{0} : is dir!".format(cur_file) list_dir(path) # 递归子目录
二、os.walk 方法
os.walk() 方法用于通过在目录树中游走输出在目录中的文件名,向上或者向下。是一个简单易用的文件、目录遍历器,可以帮助我们高效的处理文件、目录方面的事情。
语法格式如下:
os.walk(top[, topdown=True[, onerror=None[, followlinks=False]]])
方法参数说明:
返回值: 三元组 (root, dirs, files)
实例
def work_dir(file_dir): print'\n\n<><><><><> work dir <><><><><>' for root, dirs, files in os.walk(file_dir): print'\n========================================' print "root : {0}".format(root) print "dirs : {0}".format(dirs) print "files : {0}".format(files) for file in files: try: print'-----------------------------------' file_name = os.path.splitext(file)[0] file_suffix = os.path.splitext(file)[1] file_path = os.path.join(root, file) file_abs_path = os.path.abspath(file) file_parent = os.path.dirname(file_path) print "file : {0}".format(file) print "file_name : {0}".format(file_name) print "file_suffix : {0}".format(file_suffix) print "file_path : {0}".format(file_path) print "file_abs_path : {0}".format(file_abs_path) print "file_parent : {0}".format(file_parent) except Exception, e: print "Exception", e
三、其他跟文件相关的常用方法
os.path.splitext():分离文件名和扩展名
file = "file_test.txt"file_name = os.path.splitext(file)[0] # 输出:file_testfile_suffix = os.path.splitext(file)[1] # 输出:.txt
os.path.exists():判断文件或目录是否存在
os.path.isfile():判断是否是文件
os.path.isdir():判断是否是目录
os.path.dirname():获取当前文件所在的目录,即父目录
os.makedirs():创建多级目录
os.mkdir():创建单级目录
os.path.getsize():获取文件大小
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
122 在
学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号