文件操作时,总会遇到路径问题,例如:相对路径转为绝对路径、路径拼接、将路径的文件目录和文件名拆分、将路径的文件名和扩展名拆分、只想获取文件名、只想获取扩展名等。
也会涉及到判断是文件还是文件夹,以及获取文件信息(文件大小、创建日期、修改日期、访问日期等)。
判断是否是绝对路径:os.path.isabs(...)
参数:path。
返回:True/False。相对路径,返回False;绝对路径,返回True。
import os
os.path.isabs('NEWS.txt') # 返回:False
os.path.isabs(r'E:/Program Files (x86)/python/NEWS.txt') # 返回:True
相对路径转为绝对路径:os.path.abspath(...)
参数:path。
返回:字符串。
import os
os.path.abspath('NEWS.txt') # 返回:'E:\\Program Files (x86)\\python\\NEWS.txt'
路径拼接:os.path.join(...)
参数:path1,path2,...
返回:字符串
import os
os.path.join(r'G:/','aa.txt') # 返回:'G:/aa.txt'
os.path.join(r'G:/','python','NEWS.txt') # 返回:'G:/python\\NEWS.txt'
文件路径和文件名拆分:os.path.split(...)
参数:path。
返回:元组。元组中2个元素:(文件路径,文件名)。
import os
os.path.split(r'E:/Program Files (x86)/python/NEWS.txt')
# 返回:
('E:/Program Files (x86)/python', 'NEWS.txt')
文件夹也适用。
import os
os.path.split(r'E:/Program Files (x86)/python')
# 返回:
('E:/Program Files (x86)', 'python')
若以"/"结尾,返回的元组中的第2个元素为空字符串。
import os
os.path.split(r'E:/Program Files (x86)/python/')
# 返回:
('E:/Program Files (x86)/python', '')
在路径中获取文件所在文件夹:os.path.dirname(...)
参数:path。
返回:字符串。
注意:文件和文件夹都适用。这也是os.path.split(...)返回的元组中的第一个元素。
在路径中获取文件名:os.path.basename(...)
参数:path。
返回:字符串。
注意:文件和文件夹都适用。这也是os.path.split(...)返回的元组中的第二个元素。
文件名和扩展名拆分:os.path.splitext(...)
参数:path。
返回:元组。元组中2个元素:(文件名,扩展名)。
import os
os.path.splitext(r'E:/Program Files (x86)/python/NEWS.txt')
# 返回:
('E:/Program Files (x86)/python/NEWS', '.txt')
判断文件:
os.path.exists(path) | 判断文件或文件夹是否存在 |
os.path.isdir(path) | 判断是否为文件夹 |
os.path.isfile(path) | 判断是否为文件 |
获取文件信息:
os.path.getsize(path) | 返回文件的字节数 文件不存在则报错(FileNotFoundError) |
os.path.getatime(path) | 返回上次访问路径的时间。 文件不存在则报错(FileNotFoundError) |
os.path.getctime(path) | 返回创建的时间(Windows)。 文件不存在则报错(FileNotFoundError) |
os.path.getmtime(path) | 返回上次修改的时间。 文件不存在则报错(FileNotFoundError) |
返回的是数字,需转为日期格式。
补充:os.path.sep,返回:'\\'