其他分享
首页 > 其他分享> > 重新认识path之中的路径

重新认识path之中的路径

作者:互联网

重新认识path之中的路径

背景

在一个项目中,需要获取上一层文件地址。结构如下:
在这里插入图片描述
即想在dtl2.py中读取到datas文件夹下面的csv数据。
之前的代码如下:

cwd = os.getcwd()
dirname = os.path.dirname(cwd)
## 构建数据路径
data_abs_path = 'datas\双十一淘宝美妆数据.csv'
data_path = os.path.join(dirname, data_abs_path)
print(data_path)

后面感觉不是特别合理,应该用绝对路径的。且感觉对python中的路径不是特别熟悉。

关于OS模块

OS:operating system
该模块与操作系统有关,比如

cwd = os.getcwd()

为了获取到当前工作目录,打印值为:etl文件夹目录。

关于os.path

专门操作文件路径的模块,所以该模块函数的传参基本都是有path,代表文件所在路径。
比如os.path.abspath(path),os.path.exists(path)等,详细函数见:
Python3 os.path() 模块

总结

若是想要读取上一层工作目录的文件,在不改变工作路径提前下,必须先用os.getcwd()函数获取到当前工作路径。然后可以有两种方法处理:

cwd = os.getcwd()  # 获取当前工作路径
dirname = os.path.dirname(cwd)  # 获取当前工作路径的上一层
## 构建数据路径
data_abs_path = 'datas\双十一淘宝美妆数据.csv'
data_path = os.path.join(dirname, data_abs_path) 
print(data_path)

这种方法利用了os.path.dirname()函数,对面只跳一层比较简单,但是如果要跳几层,比如想要获取上述两层文件夹中的文件,这种写法就非常不好,代码比较冗杂。

data_path = os.path.join(os.getcwd(), "..\datas\双十一淘宝美妆数据.csv")

这种方法利用了…\的写法。直接基于当前路径下,往上层移动,这种方法相比于法1更加好,表现了可读性和效率上。

标签:重新认识,data,路径,path,dirname,os,cwd
来源: https://blog.csdn.net/weixin_42384444/article/details/123029410