python相对路径和绝对路径总结

1 当前工作目录

某本书中提到:“Every program that runs on your computer has a current working directory, or cwd. Any filenames or paths that do not begin with the root folder are assumed to be under the current working directory .”

翻译为:每一个运行在计算机中的程序都有一个当前工作目录(或cwd),任何不以根文件夹开始的文件名或路径,都被假定在当前工作目录之下。

1.1 os.getcwd() 函数可用于获取当前工作目录

>>> import os
>>> os.getcwd()
'E:\\Coding\\pycharm\\cifar10'

1.2 os.chdir() 函数可用于修改当前工作目录

>>> os.chdir("C:\\Windows")
>>> os.getcwd()
'C:\\Windows'

1.3 os.listdir(path) 方法

用于返回指定的文件夹包含的文件或文件夹的名字的列表;
只支持在 Unix, Windows 下使用。

2 相对路径和绝对路径

绝对路径:总是从根文件夹开始,Window 系统中以盘符(C:、D:)作为根文件夹,而 OS X 或者 Linux 系统中以 / 作为根文件夹。
相对路径:指的是文件相对于 当前工作目录所在的位置。

      在使用相对路径表示某文件所在的位置时,经常使用.\表示当前所在目录,还有..\表示当前所在目录的父目录。以下图为例,如果当前工作目录设置为 C:\bacon,则图中其他文件夹和文件的相对路径和绝对路径对应为该图右侧所示的样子。(该图片源地址)
在这里插入图片描述

3 python的os.path模块提供的路径相关函数

3.1 os.getcwd() 函数:获取当前工作目录

>>> import os
>>> os.getcwd()
'E:\\Coding\\pycharm\\cifar10'

3.2 os.path.abspath(path) :返回 path 参数的绝对路径的字符串

os.path.abspath(".") ,获取当前文件所在路径;
os.path.abspath("..") ,获取当前文件所在路径的上一层路径;

# 可用于将相对路径转换为绝对路径 (当path = '.'时,表示当前工作目录)
>>> os.getcwd()
'E:\\Coding\\pycharm\\cifar10'
>>> os.path.abspath(".")
'E:\\Coding\\pycharm\\cifar10'
>>> os.path.abspath("..")
'E:\\Coding\\pycharm'

3.3 os.path.isabs(path):判断 path 是否为绝对路径

>>> os.path.isabs(".")
False

3.4 os.path.relpath(path, start) :返回从 start 路径到 path 的相对路径的字符串

# 如果没有提供 start,则使用当前工作目录作为开始路径。
>>> os.path.relpath("E:\\Coding")
'..\\..'

@ 注意:Windows环境中,该函数的path及start必须在同一个盘目录下,当一个为E盘,一个为F盘时会报错:
>>> os.path.relpath("E:\\Coding", "F:\\anoconda")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "F:\Anaconda\envs\pytorch\lib\ntpath.py", line 562, in relpath
    path_drive, start_drive))
ValueError: path is on mount 'E:', start on mount 'F:'

3.5 os.path.dirname(path) / os.path.basename(path) / os.path.split() :获取路径

os.path.dirname(path):返回包含 path 参数中最后一个斜杠之前的所有内容的字符串
os.path.basename(path) :返回包含 path 参数中最后一个斜杠之后的所有内容的字符串
os.path.split(path) :返回path路径的目录名称和基本名称这两个字符串组成的元组
path.dirname(__file__)可返回当前文件所在目录(__file__为文件名)

>>> path = "C:\\Windows\\system32\\xcopy.exe"
>>> os.path.dirname(path)
'C:\\Windows\\system32'
>>> os.path.basename(path)
'xcopy.exe'
>>> os.path.split(path)  # 相当于前两个函数的组合使用
('C:\\Windows\\system32', 'xcopy.exe')

4 路径拼接 os.path.join()用法

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

  1. 如果各组件名首字母不包含 ‘/’,则函数会自动加上;
  2. 会从第一个以“/”开头的参数开始拼接,之前的参数全部丢弃;
  3. 优先判定上一种情况。若无,则如果出现“./”开头的参数,会从“./”开头的参数的上一个参数开始拼接;
>>> print('1:', os.path.join("aaa", "bbb", "ccc.txt"))
1: aaa\bbb\ccc.txt
>>> print('2:', os.path.join("aaa", "/bbb", "ccc.txt"))
2: /bbb\ccc.txt
>>> print('3:', os.path.join("aaa", "./bbb", "ccc.txt"))
3: aaa\./bbb\ccc.txt

参考1:Python绝对路径和相对路径详解
参考2:python 相对路径和绝对路径的区别

欢迎关注【OAOA

  • 17
    点赞
  • 91
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python中的相对路径是指相对于当前工作文件夹的路径,用于定位文件或目录。可以使用`os.getcwd()`函数获取当前的工作文件夹路径。相对路径通常使用相对于当前文件所在位置的路径。例如,如果当前文件位于`/home/user/documents/code`目录下,而要引用同级目录下的`data.csv`文件,则相对路径可以是`./data.csv`。 绝对路径是指完整的文件或目录路径,不依赖于当前工作文件夹。在Windows操作系统中,可以通过按住Shift键并右键单击文件,然后选择“复制为路径”来获取文件的绝对路径。 在Python中使用相对路径时,可以使用`open()`函数来打开文件,并传递相对路径作为参数。例如,使用`open('..\111.txt', 'r', encoding='utf8')`来打开上级目录中的`111.txt`文件。 总结起来,相对路径是相对于当前工作文件夹的路径,而绝对路径是完整的文件或目录路径。相对路径可以使用`os.getcwd()`函数获取当前工作文件夹路径,而绝对路径可以通过在文件资源管理器中获取文件的绝对路径。在Python中使用相对路径时,可以使用`open()`函数来打开文件,并传递相对路径作为参数。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [python绝对路径相对路径](https://blog.csdn.net/weixin_42830697/article/details/120015478)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值