上QQ阅读APP看书,第一时间看更新
4.4.1 通过os.path获取目录和文件属性
我们可以通过Python核心模块里的os.path相关方法获取目录和文件属性,并在此基础上做进一步操作。在表4.2里,我们列出了其中的常用方法。
表4.2 os.path模块里目录和文件的相关方法
我们在D盘里创建一个名为1的文件夹,在其中创建一个名为HelloWorld.txt的文件,在如下的OsPathFuncDemo.py范例中,我们能用os.path相关的方法获取上述文件的信息。
01 # coding=utf-8 02 import os 03 print(os.path.abspath('d:\\1')) # d:\1 04 print(os.path.abspath('d:\\2')) # 如果目录不存在,也会返回d:\2 05 print(os.path.exists('d:\\1')) # True 06 print(os.path.exists('d:\\2')) # False 07 # 如下语句输出d:\1\HelloWorld.txt 08 print(os.path.abspath('d:\\1\\HelloWorld.txt')) 09 # 如下输出d:\1 10 print(os.path.dirname('d:\\1\\HelloWorld.txt')) 11 print(os.path.isfile('d:\\1\\HelloWorld.txt')) # True 12 print(os.path.isfile('d:\\1')) # False 13 print(os.path.isdir('d:\\1')) # True 14 print(os.path.isdir('d:\\1\\1.txt')) # False 15 # 如下输出 ('d:\\1', 'HelloWorld.txt') 16 print(os.path.split('d:\\1\\HelloWorld.txt'))
在第2行里,通过import语句引入了os模块,之后就可以用os.path里的相关方法了。
在第3行和第4行里,我们分别输出了两个文件夹目录的绝对路径,差别在第3行的文件夹存在而第4行的不存在,但是abspath方法不会去判断是否存在,仅会输出绝对路径。如果需要判断,则可以通过第5行和第6行的exists方法(这两句话分别会输出True和False)。
在第8行里,通过abspath输出文件的绝对路径,和之前文件夹绝对路径不同,文件的绝对路径包括目录名和文件名,而在第10行里则是通过dirname输出文件的路径。
在第11行到第14行的代码里,分别通过isfile和isdir方法判断参数所指定的是否是文件或者是路径:对于isfile方法,如果参数是文件则返回True;对于isdir方法,如果参数是路径则返回True。
在一些项目的实际场景里,需要从文件的绝对路径里提取路径名和文件名,所以可以像第16行那样通过split返回一个元组,其中包含路径和文件名的信息。