os.path 模块
os.path 模块提供了目录相关(路径判断、路径切分、路径连接、文件夹遍历)的操作
方法 | 描述 |
---|---|
isabs(path) | 判断path是否为绝对路径 |
isdir(path) | 判断路径是否为目录 |
isfile(path) | 判断路径是否为文件 |
exists(path) | 判断指定路径的文件是否存在 |
getsize(filename) | 返回文件的大小 |
abspath(path) | 返回文件的绝对路径 |
dirname§ | 返回所在目录 |
getctime(filename) | 返回文件的创建时间 |
getatime(filename) | 返回文件的最后访问时间 |
getmtime(filename) | 返回文件的最后修改时间 |
walk(top, func, arg) | 递归遍历目录 |
join(path, *paths) | 连接多个path |
split(path) | 对路径进行分隔,以元组形式返回目录、文件名 |
splitext(path) | 从路径中分割文件的扩展名,以元组形式返回目录、扩展名 |
【例1】测试 os.path 中常用方法
import os.path
"""获取文件、目录的基本信息"""
print(os.path.isabs('f:/fake.csv')) # 仅仅是判断字符串中的格式是否为绝对路径,并不会检查该路径是否真的存在
print(os.path.isdir('f:/a.csv'))
print(os.path.isfile('f:/a.csv'))
print(os.path.exists('f:/fake.csv'))
print(os.path.getsize('f:/a.csv'))
print(os.path.abspath('138practice.py'))
print(os.path.dirname('f:/a.csv')) # 打印所在目录
"""获取创建时间、最后访问时间、最后修改时间"""
print(os.path.getctime('138practice.py'))
print(os.path.getatime('138practice.py'))
print(os.path.getmtime('138practice.py'))
"""对路径进行分割、连接操作"""
path = os.path.abspath('138.practice.py')
print(os.path.split(path)) # 返回元组:目录、文件
print(os.path.splitext(path)) # 返回元组:目录、扩展名
print(os.path.join('aa', 'bb', 'cc'))
运行结果:
【例2:应用示例】列出指定目录下所有的.py
import os.path
# 法1:通过标准判断语句
path = os.getcwd()
file_list = os.listdir(path) # 列出当前路径下的子目录和子文件
for filename in file_list:
pos = filename.rfind('.')
# str.rfind(str, beg=0 end=len(string))返回字符串最后一次出现的位置,如果没有匹配项则返回-1。
if filename[pos + 1:] == 'py':
print(filename)
print('#############################################')
# 法2:通过列表推导式
file_list2 = [filename for filename in os.listdir(path) if filename.endswith('.py')]
# str.endswith(suffix[, start[, end]])endswith() 方法用于判断字符串是否以指定后缀结尾,如果以指定后缀结尾返回 True,
# 否则返回 False。可选参数 "start" 与 "end" 为检索字符串的开始与结束位置。
for filename in file_list2:
print(filename, end='\t')
运行结果:
注:不完全截图