python之os.path模块学习笔记

author="jolting"python

date="2018-03-23"编程

python  os.path模块主要用于文件的属性获取,在编程中常常用到,看许多框架中都有这个,有几回看到这个,可是不知道怎么用,总感受很神秘,这几天有项目须要测试,而后看了开发的代码,其中又有这个os.path这个,以为嗯,真的有必要好好的了解下.看了几个经常使用的,这里整理了一下笔记。也算是本身学习的成果物吧,框架

大概列一下今天我学习的,可能比较经常使用的 1)os.path.abspath()学习

2)os.path.dirname()测试

3)os.path.join()spa

4)os.path.exists()3d

5)os.path.basename()orm

6)os.path.split() blog

前四个方法在我写的代码里面有体现,用到了,后两个简单的说一下用法 ip

1.os.path.abspath(path)

用法:返回当前代码文件的绝对路径

返回值类型:str

注意:这个方法只能在代码里面使用,在终端使用会报错

5260860-fb657e8193fc8da4.jpg
图1:os.path.abspath()


5260860-123d0673b2f8c387.jpg
图1代码执行结果

2.os.path.dirname(path)

用法:返回当前文件的根目录路径

返回值类型:str

5260860-c23ca5c0698bbff0.jpg
图2:os.path.dirname()


5260860-27dfd3f53d6273fc.jpg
图2执行结果

Tip:通常os.path.abspath和os.path.dirname()搭配使用,如上述代码 首先获得我当前代码文件的绝对路径,再返回代码文件路径获得根目录路径

3.os.path.join(path)

用法:拼接路径

#join就是将当前想要拼接的路径进行组合 #join仅仅是链接目录的做用,不能生成目录

返回值:拼接后路径

返回值类型:str

当前使用场景:代码须要读取配置文件夹的表格,若是表格替换或者文件夹位置变化,只须要更改配置就能够,因此目前将所须要读取的文件位置进行拼接,而后访问

想法:建立一个位于该项目下的文件夹,专门用于存储表格,而后将路径拼接,以后访问路径中表格,进行处理 。

本次是将文件夹创建在performer的上级目录下,如图3展现的目录结构所示。

5260860-39a2d870a6e72830.jpg
图3

所以用到了os.path.dirname(),刚开始学习,多运用仍是比较好的。

具体看代码喽

5260860-0602f66db23274e7.jpg
图4:os.path.join()

进行分析的话以下:(多是多余的,毕竟大家都是高颜值高智商~)

将当前文件的根目录路径与data_root, file_name进行拼接

1.获取当前文件的根目录路径 = os.path.dirname(os.path.abspath(__file__))

2.使用os.path.join()方法进行拼接即最后的:

file_path=os.path.join(os.path.dirname(os.path.abspath(__file__)), data_root, file_name) file_name #表格名称

tip:这两个当作参数传入os.path.join()是为了不文件夹位置或者表格名更改引发代码的改动 打印出来就是以下图所展现的:根据返回的路径还要判断一下是否真的存在,万一粗枝大叶的没有给data_root下放表格,是否是就须要进行后面的操做了,因此运用了os.path.exists() E:\Work\study\python_model\read_file\data_root\2.xlsx

5260860-4469392ba8c243e3.jpg
图5

4.os.path.exists(path)

用法:判断当前的路径是否存在

返回值为:存在返回Ture,不存在返回False

返回值类型:布尔型 具体见上一部分的代码中

5.os.path.basename(path)

用法:返回路径的最后的文件名

返回值类型:str

5260860-0db67d119d8012f3.jpg
图6:os.path.

6.os.path.split(path)

用法:切分目录和文件名

返回值:切分后的目录和文件名的元组

返回值类型:tuple

5260860-aa98390c4ce5988f.jpg
图7:os.path.split()

欧了,笔记终于写完了,脑子里过了一遍,基本有了印象……晚安