在《Python中文件的读取》中提到,使用open()方法时,第一个参数是要打开的文件。如果该参数只是一个文件名时,则该文件必须与Python源文件在同一路径下。那么,如何获取Python当前所在的路径呢?Python的os模块提供了关于文件名和路径的相关操作。

1 os模块的导入

使用import语句导入os模块,代码如下所示:

import os

2 获取python当前所在的路径

使用os模块中的getcwd()函数获取当前路径,代码如下所示:

cwd = os.getcwd()

其中,“cwd”是“current working directory”即当前工作路径的缩写。变量cwd的类型是字符串,保存了Python所在的路径。

3 获取指定文件的绝对路径

通过os.path.abspath()函数获取指定文件的相对路径,代码如下所示。

abs_path = os.path.abspath(‘1.py’)

此时,变量abs_path是字符串类型,保存了“1.py”的绝对路径。该绝对路径就是“2 获取python当前所在的路径”中提到Python所在的路径再加上文件名。

需要注意的是,os.path.abspath()函数不会验证指定的文件是否存在,即使该文件不存在,也会返回其绝对路径。

4 判断文件是否存在

通过os.path.exists()函数判断指定文件是否存在,代码如下所示:

os.path.exists(‘1.py’)

如果该文件存在,返回True,否则返回False。

需要注意的是,如果参数是文件名,则在“2 获取python当前所在的路径”中提到Python所在的路径下搜索指定文件;如果参数是文件的绝对路径,则在指定路径下搜索该文件。

5 判断是否是文件夹或者文件

通过os.path.isdir()函数判断是否是文件夹,os.path.isfile()函数判断是否是文件,代码如下所示:

os.path.isdir(‘1.py’)
os.path.isfile(‘1.py’)

如果是文件夹,os.path.isdir()则返回True,否则返回False;如果是文件,os.path.isfiler()则返回True,否则返回False.

6 获取指定文件夹下的所有子文件夹和文件

通过os.listdir()函数获取指定文件夹下的所有子文件夹和文件,代码如下所示:

os.listdir(cwd)

其中,os.listdir()函数的参数即为指定的文件夹,cwd是“2 获取python当前所在的路径”中的Python所在的文件夹。os.listdir()函数的返回值是一个列表,该列表中的元素是在该文件夹下的所有子文件夹名和文件名。