python对⽂件⽬录的获取_Python获取指定⽂件夹下的⽬录和
⽂件的实现
经常有需要扫描⽬录,对⽂件做批量处理的需求,所以对⽬录处理这块做了下学习和总结。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)
python怎么读文件夹下的文件夹if os.path.isdir(path):
print "{0} : is dir!".format(cur_file)
list_dir(path) # 递归⼦⽬录
⼆、os.walk ⽅法
os.walk() ⽅法⽤于通过在⽬录树中游⾛输出在⽬录中的⽂件名,向上或者向下。是⼀个简单易⽤的⽂件、⽬录遍历器,可以帮助我们⾼效的处理⽂件、⽬录⽅⾯的事情。
语法格式如下:
os.walk(top[, topdown=True[, οnerrοr=None[, followlinks=False]]])
⽅法参数说明:
top:要遍历的⽬录的路径
topdown:可选,如果为 True,则优先遍历 top ⽬录,以及 top ⽬录下的每⼀个⼦⽬录,否则优先遍历 top 的⼦⽬录,默认为 True
onerror: 可选, 需要⼀个 callable 对象,当 walk 异常时调⽤
followlinks:可选, 如果为 True,则会遍历⽬录下的快捷⽅式(linux 下是 symbolic link)实际所指的⽬录,默认为 False args:包含那些没有 '-' 或 '--' 的参数列表
返回值: 三元组 (root, dirs, files)
root :所指的是当前正在遍历的⽬录的地址
dirs :当前⽂件夹中所有⽬录名字的 list (不包括⼦⽬录)
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_name = os.path.splitext(file)[0] # 输出:file_test
file_suffix = os.path.splitext(file)[1] # 输出:.txt
ists():判断⽂件或⽬录是否存在
os.path.isfile():判断是否是⽂件
os.path.isdir():判断是否是⽬录
os.path.dirname():获取当前⽂件所在的⽬录,即⽗⽬录
os.makedirs():创建多级⽬录
os.mkdir():创建单级⽬录
size():获取⽂件⼤⼩
以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持脚本之家。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论