重新认识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()函数获取到当前工作路径。然后可以有两种方法处理:

  • 法1:
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()函数,对面只跳一层比较简单,但是如果要跳几层,比如想要获取上述两层文件夹中的文件,这种写法就非常不好,代码比较冗杂。

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值