os.getcwd(),os.path.realpath(__file__),sys.path[0]与绝对路径

2024-06-07 14:58

本文主要是介绍os.getcwd(),os.path.realpath(__file__),sys.path[0]与绝对路径,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1、os.getcwd()

        该方法用于获取执行py文件的位置空间,可以理解为当前的执行目录,完全与py文件所在的位置无关,下面是一个小例子,比如:

(1).py文件的位置:F:/PycharmProjects/untitled/Cluster/test.py,该文件中包含命令print os.getcwd()

(2)敲cmd进入Windows的命令行界面,这个时候我们所在的目录是c:\users\administrator

(3)我们用已经安装好的Python环境运行(1)中的Python文件,得到的就是c:\users\administrator,结果如下:

(4)现在进入到desktop,然后再执行上述命令,可以发现,输出结果是c:\users\administrator\desktop。结果如下:

根据输出可以看到,该方法的输出完全是一个可变因素,就是你现在在哪个目录下运行py文件,它就显示哪个路劲,其实我不太明白这个方法的实际作用,感觉不是很实用,可能是还没用到。

2、os.path.dirname(os.path.realpath(__file__))

        获取包含该执行语句的py文件所在的绝对路劲,比如,我们在test.py文件中加上一句:print(os.path.dirname(os.path.realpath(__file__))),那么我们输出的就是test.py文件的绝对路径。

结果如图:

这个才是我们通常比较关注的路劲,因为通过这个路劲,我们可以调用同路劲下的其他文件,感觉比较方便。可以理解为,上面的print语句在哪个py文件中,以上语句输出的路径就是此py文件的路径。

其中:

(1)os.path.realpath(__file__):获取包含py文件名的完整路径,如果print(),则输出为F:/PycharmProjects/untitled/Cluster/test.py。看到有博主说该方法有时候输出相对路径,有时候输出绝对路径,目前我使用时输出的都是绝对路径。

(2)os.path.dirname():去掉脚本的文件名,返回目录。

(3)os.path.dirname(os.path.realpath(__file__)):指的是,该语句所在py文件的绝对路径,__file__为内置属性。

补充:

与os.path.dirname(os.path.realpath(__file__))有相同功能的是os.path.split(os.path.realpath(__file__))[0]

3、sys.path[0]

        获取当前被python.exe执行的py文件的绝对路径,比如,现在在test1.py中有语句sys.path[0],我们在test.py文件中调用test1.py,然后通过python F:/PycharmProjects/untitled/Cluster/test.py输出的就是test.py所在的路劲F:/PycharmProjects/untitled/Cluster

4、案例总结:

现在有py文件:

F:\PycharmProjects\untitled\Cluster\father.py

F:\PycharmProjects\untitled\Cluster\sub\son.py

在father中调用son里面的模块,两个文件的内容如下:

现在在c:\users\administrator下运行father.py文件,结果如下:

 

这篇关于os.getcwd(),os.path.realpath(__file__),sys.path[0]与绝对路径的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1039501

相关文章

解决jupyterLab打开后出现Config option `template_path`not recognized by `ExporterCollapsibleHeadings`问题

《解决jupyterLab打开后出现Configoption`template_path`notrecognizedby`ExporterCollapsibleHeadings`问题》在Ju... 目录jupyterLab打开后出现“templandroidate_path”相关问题这是 tensorflo

解决JavaWeb-file.isDirectory()遇到的坑问题

《解决JavaWeb-file.isDirectory()遇到的坑问题》JavaWeb开发中,使用`file.isDirectory()`判断路径是否为文件夹时,需要特别注意:该方法只能判断已存在的文... 目录Jahttp://www.chinasem.cnvaWeb-file.isDirectory()遇

oracle如何连接登陆SYS账号

《oracle如何连接登陆SYS账号》在Navicat12中连接Oracle11g的SYS用户时,如果设置了新密码但连接失败,可能是因为需要以SYSDBA或SYSOPER角色连接,解决方法是确保在连接... 目录oracle连接登陆NmOtMSYS账号工具问题解决SYS用户总结oracle连接登陆SYS账号

Oracle数据库如何切换登录用户(system和sys)

《Oracle数据库如何切换登录用户(system和sys)》文章介绍了如何使用SQL*Plus工具登录Oracle数据库的system用户,包括打开登录入口、输入用户名和口令、以及切换到sys用户的... 目录打开登录入口登录system用户总结打开登录入口win+R打开运行对话框,输php入:sqlp

解读静态资源访问static-locations和static-path-pattern

《解读静态资源访问static-locations和static-path-pattern》本文主要介绍了SpringBoot中静态资源的配置和访问方式,包括静态资源的默认前缀、默认地址、目录结构、访... 目录静态资源访问static-locations和static-path-pattern静态资源配置

龙蜥操作系统Anolis OS-23.x安装配置图解教程(保姆级)

《龙蜥操作系统AnolisOS-23.x安装配置图解教程(保姆级)》:本文主要介绍了安装和配置AnolisOS23.2系统,包括分区、软件选择、设置root密码、网络配置、主机名设置和禁用SELinux的步骤,详细内容请阅读本文,希望能对你有所帮助... ‌AnolisOS‌是由阿里云推出的开源操作系统,旨

python中os.stat().st_size、os.path.getsize()获取文件大小

《python中os.stat().st_size、os.path.getsize()获取文件大小》本文介绍了使用os.stat()和os.path.getsize()函数获取文件大小,文中通过示例代... 目录一、os.stat().st_size二、os.path.getsize()三、函数封装一、os

VMWare报错“指定的文件不是虚拟磁盘“或“The file specified is not a virtual disk”问题

《VMWare报错“指定的文件不是虚拟磁盘“或“Thefilespecifiedisnotavirtualdisk”问题》文章描述了如何修复VMware虚拟机中出现的“指定的文件不是虚拟... 目录VMWare报错“指定的文件不是虚拟磁盘“或“The file specified is not a virt

提示:Decompiled.class file,bytecode version如何解决

《提示:Decompiled.classfile,bytecodeversion如何解决》在处理Decompiled.classfile和bytecodeversion问题时,通过修改Maven配... 目录问题原因总结问题1、提示:Decompiled .class file,China编程 bytecode

log4j2相关配置说明以及${sys:catalina.home}应用

${sys:catalina.home} 等价于 System.getProperty("catalina.home") 就是Tomcat的根目录:  C:\apache-tomcat-7.0.77 <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss} [%t] %-5p %c{1}:%L - %msg%n" /> 2017-08-10