文件有两个重要组成部分,分别是路径和文件名。在书写路径时,Windows系统用反斜杠\
作为文件夹分隔符;而在Linux上则用正斜杠/
。为了进行统一处理这两种情况,可用os.path.join()
函数来处理,如
import os
os.path.join('user', 'bin')
# 'user\\bin'
os.path
模块提供了关于路径名的操作,所有的方法都可以接受字节或者字符串对象作为参数。
在使用该模块前需要导入
import os
模块下的使用方法都是一样的
os.path.basename('/foo/bar') # 'bar'
该模块下的方法如下表所示
方法 | 作用 |
---|---|
abspath(path) | 返回path 的绝对路径名 |
basename(path) | 返回path 的基本名称(最后一个斜杠之后的所有内容) |
commonpath(paths) | 返回paths 中最长公共子路径 |
commonprefix(list) | 返回list 中路径字符串的公共最长前缀 |
os.path.dirname(path) | 返回path 的目录名称(最后一个斜杠之前的所有内容) |
os.path.exists(path) | 如果path 所指的文件或文件夹存在,则返回True ,否则Fales |
os.path.lexists(path) | 如果path 所指的文件或文件夹存在返回True 。符号链接出错返回True |
os.path.expanduser(path) | 用~ 或~user 替换home目录 |
os.path.expandvars(path) | 返回环境变量拓展的参数 |
os.path.getatime(path) | 返回最后一次访问路径的时间 |
os.path.getmtime(path) | 返回最后一次修改路径的时间 |
os.path.getctime(path) | 返回系统的ctime |
os.path.getsize(path) | 返回path 中文件的字节数 |
os.path.isabs(path) | 判断参数是否是绝对路径,如果是则返回True |
os.path.isfile(path) | 如果path 存在且是一个文件,则返回True |
os.path.isdir(path) | 如果path 存在且是一个文件夹,则返回True |
os.path.islink(path) | 如果path 是一个存在路径的引用,则返回True |
os.path.ismount(path) | 如果path 是一个悬挂点,则返回True |
os.path.join(path, *paths) | 智能连接1个或多个路径 |
os.path.normcase(path) | Windows系统把字符都转为小写,斜杠转为反斜杠;其它系统不变 |
os.path.nrompath(path) | 删除掉冗余的分隔符 |
os.path.realpath(path) | 返回文件名的真实路径,消除符号链接 |
os.path.relpath(path, start) | 返回从start 路径到path 路径;如果没有start 参数,就是用当前工作目录作为开始路径 |
os.path.samefile(path1, path2) | 如果两个路径指向同一个文件或目录,则返回True |
os.path.sameopenfile(fp1, fp2) | 如果两个文件描述符指向同一个文件,则返回True |
os.path.samestat(stat1, stat2) | 如果两个状态指向同一个文件,则返回True |
os.path.split(path) | 返回元组,分别是路径名称和基本名称 |
os.path.splitdrive(path) | 返回元组,分别是节点名称和基本名称 |
os.path.splittext(path) | 返回元组,分别是根明或拓展名 |
更详细的内容参考python文档。
在对路径进行操作完成之后,就可以操作文件了。