os.path相关函数介绍
首先导入相关模块
#启动idle 当前所在的路径为C:\\Python27,不同电脑可能不一样
import os.path as op #把os.path 别名为 op
abspath(path) 返回路径的绝对路径
>>> op.abspath('.') #查看当前路径的绝对路径
'C:\\Python27'
>>> op.abspath('..')#查看父路径的绝对路径
'C:\\'
>>> op.abspath('./Lib/Bastion.py') #查看文件的
'C:\\Python27\\Lib\\Bastion.py'
>>> op.abspath('./Lib/') #查看目录的
'C:\\Python27\\Lib'
basename(p) 返回路径的最后一部分(win为最后一个/后的内容)
#使用相对路径
>>> op.basename('./Lib')
'Lib'
>>> op.basename('./Lib/Bastion.py')
'Bastion.py'
>>> op.basename('./Lib/') #注意这里/后面没有内容返回的是空串
>''
#使用绝对路径
>>> op.basename('C:\\Python27\\NEWS.txt')
'NEWS.txt'
dirname(p)与basename(p)相对 返回 最后一个/之前的路径
#相对路径返回的也是相对路径
>>> op.dirname('./Lib/')
'./Lib'
>>> op.dirname('./Lib')
'.'
#要想获得绝对路径
>>> op.abspath(op.dirname('./Lib/'))
'C:\\Python27\\Lib'
#绝对路径返回的也是绝对路径
>>> op.dirname('C:\\Python27\\NEWS.txt')
'C:\\Python27'
commonprefix(m)返回一组路径的,最大相同部分
>>> op.commonprefix(["./a/b/c/d", "./a/b/c"])
'./a/b/c'
>>> op.commonprefix(["./a/b/c.txt", "./a/b/c.txt"])
'./a/b/c.txt'
exists(path)检查路径是否存在
>>> op.exists("./a/b/c/d")
False
>>> op.exists('C:\\Python27\\NEWS.txt')
True
与linux差不多的函数
getatime(filename),getctime(filename),getmtime(filename)
#获取访问时间
>>> op.getatime("c:\\Python27\\NEWS.txt")
1487396615.0195312
#获取更改权限的时间
>>> op.getctime("c:\\Python27\\NEWS.txt")
1481978046.0
#获取更改时间
>>> op.getmtime("c:\\Python27\\NEWS.txt")
1481978046.0
getsize(filename)获取文件 或 文件夹的大小
>>> op.getsize("c:\\Python27\\")
4096L
>>> op.getsize("c:\\Python27\\NEWS.txt")
474595L
isabs(s)
检查路径是否是绝对的
isdir(s)
检查路径是否是目录
idfile(s)
检查路径是否是文件
islink(path)
检查路径是否是链接(win 快捷方式)
ismount(path)
检查路径是否是挂载点
>>> op.isabs('.')
False
>>> op.isabs('C:\\')
True
join(path, *paths) 将至少两个路径以路径分割符连接
>>> op.join('a','b')
'a\\b'
>>> op.abspath('a\\b')
'C:\\Python27\\a\\b'
normacase(s)
标准化一个路径,使所有字符小写,所有的\ 转换成/
normpath(path)
标准化一个路径,将所有的//转化为\
#在linux下的路径转为 win 下的路径时用到
>>> op.normcase('C:/Python27/a/b')
'c:\\python27\\a\\b'
>>> op.normpath('c://python27//a//b')
'c:\\python27\\a\\b'
split(pathname)
将路径分割为(head, tail) tail是最后一个/后面的字符串,如果/后面没有字符串 tail 可能为空
>>> op.split(r'a\b\c\d')
('a\\b\\c', 'd')
expanduser(path) ~会被替换成用户目录
>>> op.expanduser("~/hehe")
'/Users/jianglei/hehe'
expandvars(path)
#如果你在shell里设置如下
$name=jianglei
$host=localhost
op.expandvars(/$name/$host) #会返回/jianglei/localhost
以下函数没有明白待更新
splitdrive
splittext
splitunc
walk