一,Python中获得当前目录和上级目录

获取当前文件的路径:

from os import path
d = path.dirname(__file__) #返回当前文件所在的目录
# __file__ 为当前文件, 若果在ide中运行此行会报错,可改为 #d = path.dirname('.')

获得某个路径的父级目录:( 强烈建议使用该方法!可以逐层获取到根目录的地址,例如D:/)

parent_path = os.path.dirname(d) #获得d所在的目录,即d的父级目录
parent_path = os.path.dirname(parent_path) ##获得parent_path所在的目录即parent_path的父级目录

获得规范的绝对路径:

abspath = path.abspath(d) #返回d所在目录规范的绝对路径

二,路径拼接

Python3 os.path.join()用法

功能描述:os.path.join()函数用于路径拼接文件路径。

语法:os.path.join(path1 [,path2 [,...]])

os.path.join()函数中可以传入多个路径:

1.会从第一个以“/”开头的参数开始拼接,之前的参数全部丢弃。

2.优先判定上一种情况。若无,则如果出现“./”开头的参数,会从“./”开头的参数的上一个参数开始拼接。

三,蟒蛇里面的相对路径与绝对路径

如例程所示:

os.path.abspath则则( '')可以获取当前脚本所在的路径,当我们需要在该目录下生成一些文件时,就可以用此命令获取脚本路径。

开放( 'test1.txt的的', 'R')以只读的形式打开该脚本所在路径下的名为test1.txt的的文件文档。

开放('E:/pythonMixture/test2.txt','R')以只读形式打开E:/ pythonMixture路径下的的test2.txt文档

由于字符“\”为蟒蛇中的字符串转义字符,所以:

open('E:/pythonMixture/test2.txt','r')这句等价于open('E:\\ pythonMixture \\ test2.txt','r')
--------- ----

四,实战截图

目的:为了验证E:/ CRMAutoTest001 \ pre_infoChannel.csv E:\ CRMAutoTest001 \ others \上层的测试文档

这两各包含“/”和“\”的地址组合,都是正确的路径。

所以后续遇到这两种写法,都是正确的。

再着重记忆一遍,代码第16行,当文件与脚本不在同一路径,绝对路径的规范写法:E:/pythonMixture/test2.txt

五、小结:

1.  os.path.join()函数用于路径拼接文件路径,这是主流常用的。 方法内部代码封装的完美,只要传入正确的两个路径即可。

2.按照MVC设计结构,相同功能的文件要存放在同个文件夹,当项目大了模块多时就会很好维护。

比如数据源文件,配置文件,公共方法文件,模块控制层文件等。

现在从事的项目,就不进行相对路径和绝对路径的优化,等新项目开始,再重新涉及开发。

3.因为项目的绝对路径都是以E盘根目录开始的,所以测试组小伙伴们从gitlab下载了仓库后,也要把仓库文件复制到E盘根目录,避免报错。

4. 后期要实现的效果,是:全都使用相对路径来配置各类地址。确保所有人从gitlab下载好的仓库文件,安装在哪个盘哪个位置都不会报地址错误(这也是为什么使用相对路径的最根本原因。)

python 相对路径和绝对路径的区别的更多相关文章

  1. python学习:绝对路径和相对路径

    python学习:绝对路径和相对路径 大牛们应该对路径都很了解了,这篇文章主要给像我这样的入门小白普及常识用的,啊哈 下面的路径介绍针对windows,其他平台的暂时不是很了解. 在编写的py文件中打 ...

  2. 显示python已安装模块及路径,添加修改模块搜索路径

    在python交互模式下输入: help('modules') #可以显示出已安装的模块 在python交互模式下输入: import sys sys.path #可以显示出模块搜索路径 增加搜索路径 ...

  3. href 里面 链接前面加/与不加的区别?(绝对路径与相对路径)

    在写href链接时,有绝对路径与相对路径,href 里面 链接前面加/与不加的区别? href="/cp/images/lis.jpg" 相对路径 cp前面/会获取当前路径,组合成 ...

  4. python绝对路径和相对路径

    转自https://blog.csdn.net/databatman/article/details/49453953 下面的路径介绍针对windows,其他平台的暂时不是很了解. 在编写的py文件中 ...

  5. 为Python加入默认模块搜索路径

    为Python加入默认模块搜索路径 方法一:函数加入 1) import sys 2) 查看sys.path 3) 加入sys.path.append("c:\\") 方法二:改动 ...

  6. python中的模块及路径(2)

    如果我们要添加自己的搜索目录,有两种方法: 一是直接修改sys.path,添加要搜索的目录: >>> import sys >>> sys.path.append( ...

  7. 相对路径和绝对路径的区别,java获取项目访问路径的方法

    相对路径和绝对路径的区别 在HTML里只要涉及文件的地方(如超级链接.图片等)就会涉及绝对路径与相对路径的概念. .绝对路径 绝对路径是指文件在硬盘上真正存在的路径.例如“bg.jpg”这个图片是存放 ...

  8. C++中 相对路径与绝对路径 斜杠 '/' 与反斜杠 '\'的区别

    文件路径正斜杠和反斜杠 正斜杠,又称左斜杠,符号是"/":反斜杠,也称右斜杠,符号是"\".文件路径的表示可以分为绝对路径和相对路径: 1.绝对路径表示相对容易 ...

  9. python 在Windows中描述路径时出现的问题

    问题的根本:windows读取文件可以用\,但在字符串里面\被作为转义字符使用,   python在描述路径时有两种方式: 'd:\\a.txt',转义的方式 r'd:\a.txt',声明字符串不需要 ...

随机推荐

  1. 五:SpringBoot-多个拦截器配置和使用场景

    SpringBoot-多个拦截器配置和使用场景 1.拦截器简介 1.1 拦截器中应用 2.拦截器用法 2.1 编写两个拦截器 2.1.1 OneInterceptor 拦截器 2.1.2 TwoInt ...

  2. LInux-Lamp搭建

    LInux-Lamp搭建 一 yum安装(自动会下载依赖包) (一)mysql安装 检测是否安装: yum list installed mysql* rpm -qa | grep mysql* 安装 ...

  3. 【实战】通过Python实现疫情地图可视化

    目录 一. json模块 二.通过Python实现疫情地图可视化 2.将json格式的数据保存到Excel 3.应用pyecharts进行数据可视化 一. json模块 JSON(JavaScript ...

  4. 手把手教你在容器服务 TKE 中使用动态准入控制器

    在 TKE 中使用动态准入控制器 原理概述 动态准入控制器 Webhook 在访问鉴权过程中可以更改请求对象或完全拒绝该请求,其调用 Webhook 服务的方式使其独立于集群组件,具有非常大的灵活性, ...

  5. 图的连通性——Tarjan算法&割边&割点

    tarjan算法 原理: 我们考虑 DFS 搜索树与强连通分量之间的关系. 如果结点 是某个强连通分量在搜索树中遇到的第⼀个结点,那么这个强连通分量的其余结点肯定 是在搜索树中以 为根的⼦树中. 被称 ...

  6. PAT甲级—暴力搜索

    1091 Acute Stroke (30point(s)) 基础的搜索,但是直接用递归会导致段错误,改用队列之后就不会了,这说明递归调用在空间利用率上还是很吃亏的. #include <cst ...

  7. Codeforces Round #645 (Div. 2) C. Celex Update

    题目链接:C.Celex Update 题意: 给你如图所示的图形,问从(x1,y1)−>(x2,y2)路径上的不同的元素和的数量是多少. 题解: 从(1,1)到(3,3) 元素和的1−2−4− ...

  8. python代理池的构建4——mongdb数据库的增删改查

    上一篇博客地址:python代理池的构建3--爬取代理ip 一.mongdb数据库的增删改查(Mongo_pool.py) #-*-coding:utf-8-*- ''' 实现代理池的数据库模块 ●作 ...

  9. 记录一些Python中不常用但非常好用的函数

    zfill(): 方法返回指定长度的字符串,原字符串右对齐,前面填充0. print('Helloworld'.zfill(50))0000000000000000000000000000000000 ...

  10. ucosIII学习笔记——钩子函数

    一开始听见钩子函数感觉很莫名其妙,更不知道它有何作用,这是第一篇博客,也是学习ucosIII操作系统的一个开始吧. 在系统中有开发者自己创建的任务也有系统内部任务 ,UCOSIII中有五个系统任务,分 ...