首页 > 编程语言 >python-获取当前目录路径的几个方法

python-获取当前目录路径的几个方法

时间:2024-02-28 09:45:15浏览次数:27  
标签:__ 当前目录 python 路径 绝对路径 file print Path

 

1、from os.path import abspath, dirname

  1. print(abspath(__file__))

    • __file__ 是一个特殊的变量,它表示当前脚本的文件名(带有路径)。
    • abspath() 是一个函数,它返回指定文件或目录的绝对路径。
    • 因此,这行代码将打印出当前脚本的绝对路径。
  2. print(dirname(abspath(__file__)))

    • dirname() 是一个函数,它返回指定文件或目录的目录名。
    • 这里,我们首先使用 abspath(__file__) 获取当前脚本的绝对路径,然后使用 dirname() 获取这个路径的目录部分。
    • 这行代码将打印出当前脚本所在的目录的绝对路径。
from os.path import abspath, dirname
print(abspath(__file__))
print(dirname(abspath(__file__)))

 

2、from pathlib import Path

  1. print(Path(__file__)):

    • 这行代码创建了一个 Path 对象,该对象表示当前脚本(__file__)的文件路径。
    • 打印这个 Path 对象通常会显示一个表示文件路径的字符串,这个字符串的格式取决于你的操作系统。在 Unix 和 Unix-like 系统(如 Linux 和 macOS)上,路径通常使用正斜杠(/)作为分隔符;而在 Windows 上,路径使用反斜杠(\)作为分隔符。
    • 这个 Path 对象本身并没有进行任何路径解析或规范化,它只是封装了 __file__ 变量中的字符串。
  2. print(Path(__file__).resolve()):

    • resolve() 方法是 Path 对象的一个方法,它返回路径的绝对版本。如果给定的路径是相对路径,resolve() 会解析它,将其转换为绝对路径。
    • 这意味着如果脚本是从一个相对位置运行的,resolve() 会找到这个相对路径所指向的实际绝对位置。
    • 打印这个 resolve() 方法的结果会展示脚本的绝对路径,无论它是如何被调用的。
  3. print(Path(__file__).resolve().parent):

    • parent 是 Path 对象的一个属性,它返回表示路径父目录的 Path 对象。
    • 在这里,resolve() 方法首先被调用,以确保我们得到的是绝对路径。然后,parent 属性被用来获取这个绝对路径的父目录。
    • 打印这个 parent 属性会展示脚本所在目录的绝对路径。

总的来说,这些代码展示了如何使用 pathlib.Path 对象来方便地操作文件路径。Path 对象提供了许多有用的方法和属性,可以轻松地执行诸如获取绝对路径、解析路径、获取父目录等操作,而无需使用传统的字符串操作或文件系统API

from pathlib import Path
print(Path(__file__))
print(Path(__file__).resolve())
print(Path(__file__).resolve().parent)

 

标签:__,当前目录,python,路径,绝对路径,file,print,Path
From: https://www.cnblogs.com/z67767707/p/18039028

相关文章

  • Python函数每日一讲 - 一文让你彻底明白hasattr函数的使用
    引言在Python编程中,经常会遇到需要判断对象是否具有某个属性的情况。这时候就可以用到Python内置函数hasattr()。本文将深入探讨hasattr()函数的使用方法及其在实际编程中的应用。语句概览hasattr()函数用于检查对象是否具有指定的属性,返回一个布尔值。其语法如下:hasattr(......
  • 学习python自动化——Jenkins
    一、Jenkins概念持续集成,就是CI;持续交付,就是CDjenkins自动编译打包、自动部署二、持续集成的好处1.解放了重复性劳动2.更快的修复问题3.更快的交付成果4.减少手工的错误,人和机器最大的区别就是重复性动作上,人容易犯错,而机器错的几率几乎为零,所以在我们搭建完成集成服务器后......
  • 学习python自动化——pytest+allure+jenkins持续集成平台生成allure报告
    一、安装allure命令行工具具体安装过程查看:学习python自动化——pytest单元测试框架的2.4.4、生成allure的测试文件二、allure与pytest的集成在allure安装完成之后,需要与pytest集成,能够在pytest运行完成之后,生成allure的文件。1、安装pytest的allure支撑插件pipinstal......
  • 重新认识python
    写在前面Beautifulisbetterthanugly.Simpleisbetterthancomplex.什么是NB的代码,新手小白都能很直观看懂的代码(建议)学习建议建议先学基础(任何语言),先入门再去学高级阶段(项目阶段)注重面试能力(口头表达能力、文档书写能力)遇到问题如何解决?1-5分钟之内的问题自己......
  • Python numpy.zeros函数方法的使用
    ​ NumPy(NumericalPython的缩写)是一个开源的Python科学计算库。使用NumPy,就可以很自然地使用数组和矩阵。NumPy包含很多实用的数学函数,涵盖线性代数运算、傅里叶变换和随机数生成等功能。numpy.zeros函数用于创建一个指定形状(shape)和数据类型(dtype)的数组,并用零填充该数组。 ......
  • Twitter推特 api接口 获取trending趋势搜索关键词 python数据采集
    iDataRiver平台https://www.idatariver.com/zh-cn/提供开箱即用的Twitter公开数据采集API,供用户按需调用。接口使用详情请参考Twitter接口文档接口列表1.获取X/Twitter用户发布的作品列表,支持翻页参数类型是否必填默认值示例值描述apikeystring是idr_***......
  • python的面向对象
    面向对象的概念面向过程和面向对象是两种编程方式,这两个种方式是程序员用来代码来抽象世界的不同的方式,本身无优劣之分,针对于不同的抽象,各有利弊。面向对象更倾向于用各种模板来抽象世界,每个实例就是这种抽象的具体描述,这样可以描述更加复杂的关系,且可以让行为和属性和具体的......
  • python中几种括号的使用:()、[]、{}的基础使用
    Python中的三种数据类型,分别是小括号()、中括号[]、花括号{}():代表tuple元组tup=(1,2,3)[]:代表list列表list=[1,2,3]{}:代表dict字典tinydict={'a':1,'b':2}嗯1、()tuple元组小括号()代表元组,元组是不可改变的序列。创建方式如下图:2、[]list列表[]中......
  • Python并发编程的协程
    一、协程的概念1、协程是单线程下的并发,它是程序员级别的,我们来控制如何切换。2、进程的开销>>>>>>线程的开销>>>>>>协程的开销3、协程的使用需要借助于第三方模块gevent模块或者asyncio模块4、gevent 和 asyncio 是两个在Python中常用的协程框架,它们都提供了在......
  • Python脚本给数据库插入数据报错: raise errorclass(errno, errval) pymysql.err.Integ
    一、问题描述在SQL客户端插入数据时执行SQL语句INSERTINTOuser_xxx(id,uid,total,balance,wallet_type,ctime,utime)VALUES(0,'336448391',271,89000098,'coin',1708588247,1709007766);可以成功执行没报错;使用python脚本执行SQL语句INSERTINTOuser_xxx......