文件路径

关于文件, 它有两个关键属性: “文件名”和”路径”. 其中, 文件名指的是为每个文件设定的名称, 而路径则用来指明文件在计算机上的位置.

Windows上的反斜杠以及Linux上的正斜杠

在Windows上, 路径书写使用反斜杠\作为文件夹之间的分隔府. 而在Linux上, 使用正斜杠/ 作为它们的路径分隔符. 如果想要程序能同时在Windwos和Linuxs系统上运行, 在编写Python脚本时, 就必须处理这两种情况.

好在, 用os.path.join()函数来做这件事很简单. 如果将单个文件和路径上的文件夹名称的的字符串传递给它, os.path.join()会返回一个文件路径的字符串, 包含正确的路径分隔符.

Example:

>>> import os
>>> os.path.join('a', 'b', 'c')
'a/b/c'

上述代码是在Linux系统上运行的, 所以输出的是a/b/c, 如果是在Windows系统上运行则输出为a\b\c.

当前工作目录

当前工作目录(Current Working Directory, CWD).

在Python中, 可以使用os.getcwd()函数获取当前的工作路径, 还可以使用os.chdir()来改变它.

Example:

>>> import os
>>> os.getcwd()
'/home/sylar/Notes/Python3'
>>> os.chdir('/tmp')
>>> os.getcwd()
'/tmp'
>>>

相对路径和绝对路径

绝对路径: 从根目录开始的路径; 相对路径: 相对于当前工作目录的位置.

os.path模块提供了一些函数, 可以实现绝对路径和相对路径之间的转换, 以及检查给定的路径是否为绝对路径.

  • os.path.abspath(path)

返回path参数的绝对路径.

  • os.path.isabs(path)

判断参数path是否是绝对路径.

  • os.path.relpath(path, start)

返回从start到路径path的相对路径, 如果没有提供start, 就使用当前工作目录作为开始路径.

  • os.path.dirname(path)

返回路径, 即path参数中最后一个斜杠之前的所有内容.

  • os.path.basename(path)

返回文件名, 即path参数中最后一个斜杠之后的所有内容.

  • os.path.split(path)

返回一个包含两个字符串的元组, 第一个是pathdirname, 第二个是basename.

如果提供的路径不存在, 许多Python函数就会报错并崩溃, 但好在os.path模块提供了以下函数用于检测给定的路径是否存在, 以及它是文件还是文件夹:

  • os.path.exists(path)

判断指定的文件或文件夹是否存在.

  • os.path.isfile(path)

判断是否存在且是文件.

  • os.path.isdir(path)

判断是否存在且是文件夹.