python函数深入浅出 13.os.listdir()函数详解

1.函数名及其来源

这是os模块下操作目录和文件相关的函数
listdir() 只返回文件夹下所有文件名的列表(list)

>>>import os
>>> os.listdir()
['Scripts', 'tcl', 'Tools']

math 模块则会把参数转换为 float。

2.函数定义源码及其用法拆解

listdir()方法语法格式如下:

import
os.listdir(path)

参数
path -- 需要列出的目录路径,默认为当前路径

其他相关的操作文件(文件夹)函数如下:

  • os.mkdir(path) #创建path目录(只能创建一级目录,如'F:\XXX\WWW'),在XXX目录下创建WWW目录
  • os.makedirs(path) #创建多级目录(如'F:\XXX\SSS'),在F盘下创建XXX目录,继续在XXX目录下创建SSS目录
  • os.remove(path) #删除文件(必须是文件)
  • os.walk(path) #递归返回path下的目录(包括path目录)、子目录、文件名的三元组

当我们需要遍历某个文件夹下文件/目录通常有两种操作

  • 第一种:
import os
#列出指定目录下的所有文件
#files 里面既包含文件名也包含目录名
files_and_dirs = os.listdir(dir)
#一般来说会用一个for循环来逐个判断
for name in files_and_dirs:
    #所以需要判断是文件还是目录,以便执行不同的操作
    #是否是目录
    #如果要遍历该路径下所有文件/目录,可以使用递归
    os.path.isdir(files_and_dirs)
    是否是文件
    os.path.isfile(files_and_dirs)
  • 第二种:
    可以直接获得所有信息,不需要手动判断
for root, dirs, files in os.walk(file_dir):  
    print(root) #当前目录路径  
    print(dirs) #当前路径下所有子目录  
    print(files) #当前路径下所有非目录子文件

当获取文件后如何获取其后缀名,判断是否指定格式的文档、图片比如txt,doc,bmp,png,gif,jpg等:

import os
file_path='file.txt'
file=os.path.splitext(file_path)
filename,type=file
print(filename)
print(type)

3.版本差异

4.学习建议

熟练操作文件和目录,可以帮组我们写批量脚本时更高效,也是重要的python基础之一。

对基础运行环境有疑问的,推荐参考:python函数深入浅出 0.基础篇

你可能感兴趣的:(python函数深入浅出 13.os.listdir()函数详解)