首页 > 其他分享 >系统 | 绝对路径和相对路径

系统 | 绝对路径和相对路径

时间:2023-07-03 16:48:05浏览次数:36  
标签:系统 绝对路径 相对路径 file path txt 目录

在文件读取时,有很多地方都会用到绝对路径与相对路径。如在需要文件作为输入、指定文件作为输出,还有一些中间文件,都会用到相对路径与绝对路径。

绝对路径

绝对路径是指目录下的绝对位置,直接到达目标位置,通常是从盘符开始的路径。完整的描述文件位置的路径就是绝对路径。

1、Linux下的绝对路径

绝对路径指的是从根目录 / 开始的完整路径。例如,/home/user/file.txt 就是一个绝对路径,表示根目录下的 home 目录下的 user 目录下的 file.txt 文件。

2、Windows下的绝对路径

绝对路径指的是从根目录开始的完整路径。在 Windows 操作系统中,根目录的路径为 C:\(或其他盘符),因此绝对路径以盘符和冒号开始。例如,C:\Users\user\Desktop\file.txt 就是一个绝对路径,表示 C 盘下的 Users 目录下的 user 目录下的 Desktop 目录下的 file.txt 文件。

相对路径

相对路径就是指由这个文件所在的路径引起的跟其它文件(或文件夹)的路径关系。

1、Linux下的相对路径

相对路径指的是相对于当前工作目录的路径。例如,如果当前工作目录为 /home/user,则 file.txt 就是一个相对路径,表示当前工作目录下的 file.txt 文件。另外,.. 表示上一级目录,. 表示当前目录。例如,如果当前工作目录为 /home/user,则 ../file.txt 表示当前目录的上一级目录下的 file.txt 文件,./file.txt 表示当前目录下的 file.txt 文件。

2、Windows下的相对路径

相对路径指的是相对于当前工作目录的路径。例如,如果当前工作目录为 C:\Users\user\Desktop,则 file.txt 就是一个相对路径,表示当前工作目录下的 file.txt 文件。另外,.. 表示上一级目录,. 表示当前目录。例如,如果当前工作目录为 C:\Users\user\Desktop,则 ..\Documents\file.txt 表示当前目录的上一级目录下的 Documents 目录下的 file.txt 文件,.\file.txt 表示当前目录下的 file.txt 文件。

需要注意的是,相对路径和绝对路径的使用场景不同。绝对路径通常用于访问文件系统中的固定位置的文件或目录,可以确保路径的唯一性。相对路径通常用于访问当前工作目录下的文件或目录,可以简化路径表示,提高效率。在使用相对路径时需要注意当前工作目录的位置,以避免路径错误。

Python如何处理绝对路径和相对路径

Python 可以处理两个系统下的绝对路径和相对路径,因为 Python 的文件操作函数支持跨平台使用。

在 Python 中,可以使用 os 模块来处理文件路径。其中,os.path.abspath() 函数可以将相对路径转换为绝对路径,os.path.relpath() 函数可以将绝对路径转换为相对路径。例如:

import os

# 获取当前工作目录
cwd = os.getcwd()

# 将相对路径转换为绝对路径
abs_path = os.path.abspath('file.txt')

# 将绝对路径转换为相对路径
rel_path = os.path.relpath('C:\\Users\\user\\file.txt', cwd)

print(abs_path) # 输出: /home/user/file.txt 或 C:\Users\user\file.txt
print(rel_path) # 输出: file.txt

需要注意的是,Windows 操作系统中的路径分隔符为反斜杠 \,而 Unix/Linux/MacOS 操作系统中的路径分隔符为正斜杠 /。在 Python 中,可以使用 os.path.join() 函数来拼接路径,该函数会自动根据操作系统选择正确的路径分隔符。例如:

import os

# 拼接路径
path = os.path.join('C:', 'Users', 'user', 'file.txt')

print(path) # 输出: C:\Users\user\file.txt 或 C:/Users/user/file.txt

需要注意的是,当使用相对路径时,应该将相对路径与当前工作目录拼接起来,以确保路径正确。可以使用 os.path.dirname() 函数获取当前文件的父目录,然后再与相对路径拼接。例如:

import os

# 获取当前文件的父目录
parent_dir = os.path.dirname(__file__)

# 拼接相对路径
rel_path = os.path.join('data', 'file.txt')

# 拼接绝对路径
abs_path = os.path.join(parent_dir, rel_path)

print(abs_path) # 输出: /home/user/project/data/file.txt 或 C:\Users\user\project\data\file.txt

需要注意的是,在使用文件系统相关的操作时,应该考虑不同操作系统之间的差异,以确保代码的可移植性。

注意:确保代码的可移植性,我们就不能把特定的系统的路径格式写死(例如:linux是使用/,Windows是使用\),应该使用os.path进行路径获取,路径的拼接。

标签:系统,绝对路径,相对路径,file,path,txt,目录
From: https://www.cnblogs.com/zhangxuegold/p/17523238.html

相关文章

  • FreeNAS系统基本安装篇
    一、FreeNAS介绍:1.1介绍FreeNAS是一套免费的NAS服务器,它能将一部普通PC变成网络存储服务器。该软件基于FreeBSD,Samba及PHP,支持CIFS(samba),FTP,NFSprotocols,SoftwareRAID(0,1,5)及web界面的设定工具。用户可通过Windows、Macs、FTP、SSH及网络文件系统(NFS)来访......
  • 华为超聚变2288H V5 服务器安装Windows系统后 PCI数据捕获和信号处理控制器 出现感叹
    2288Hv5服务器安装Windows系统后,PCI数据捕获和信号处理控制器出现感叹号可以在IBMC界面的“诊断-黑匣子”关闭黑匣子功能,然后重启设备解决也可以通过在操作系统侧安装IBMA软件解决2288Hv5服务器安装Windows系统后,PCI数据捕获和信号处理控制器 出现感......
  • 统信UOS国产服务器操作系统(UOS Server 20-1060e)安装使用体验
    总体来说,UOS系统的安装还是很简明的。需要注意的是后期的驱动安装和其他各方面的使用细节。以下是具体安装过程:(感谢统信软件河北团队的大力支持。)特别感谢统信的郭赞、喵喵喵、Zero等各位大神的帮助。一、安装部分1、进入安装界面后,您自己很明确的请根据自己需求修改。2、“......
  • 低代码应用开发平台 高效构建业务系统
    低代码是传统软件开发逐步优化和演变的产物,并非全新革命。传统的开发方法过于昂贵和僵化,无法为企业提供所需的高效和敏捷的开发流程,且交付周期长定制能力弱,难以应对不断变化的市场和客户期望,为提高软件开发效率,对代码进行模块化组装的低代码产品进入开发者视野。低代码是基于可视......
  • linux源码解读(三):文件系统——inode【转】
    转自:https://www.cnblogs.com/theseventhson/p/15622853.html众所周知,计算机系统在掉电后也能存储数据的就是磁盘了,所以大量数据大部分时间是存放在磁盘的;现在新买的PC,磁盘从数百G到1TB不等;服务器的磁盘从数十TB到上百TB,这么大的存储空间,该怎么高效地管理和使用了?站在硬件角度,cpu......
  • linux | 时间同步 | 时钟同步 | ntp同步系统时间
    一、说明        1、linux系统        2、centos        3、系统时间快了2分钟,需要搞成同步二、具体实现1)安装ntpyum-yinstallntp2)启动systemctlstartntpd3)设置开机自启systemctlenablentpd4)查看状态systemctlstatusntpd5)修改配置文......
  • 第1章 计算机系统结构的概念
    1.计算机体系结构的经典定义计算机体系结构是程序员所看到的计算机的属性,即计算机的逻辑结构和功能特征2.常见的计算机系统结构分类法⑴冯氏分类法——依据:按照系统的最大并行度⑵Flynn分类法——依据:按照指令流和数据流的多重性4个具体分类:单指令流单数据流-单指令流多......
  • 第2章 计算机指令集系统
    1.按照寄存器对指令集结构的分类三大类:堆栈、累加器、通用寄存器组通用寄存器组分三类:RM、RR、MM(R为寄存器,M为存储器)2.操作数寻址方式描述 3.指令集结构的功能设计在确定哪些基本功能用硬件来实现时,主要考虑的因素有3个:速度、成本与灵活性。用硬件实现的特点是速度快、成......
  • java 相对路径问题 和绝对路径
    小例:java代码:都可以成功Filefile=newFile("./xml/a.properties");Filefile=newFile("xml/a.properties");下面就会出错Filefile=newFile("/xml/a.properties"); 总结:.为当前目录,即工程名所在文件夹  下面的当前路径都是你的工程目录Filefile=newFile("./......
  • 天合光能产品怎么样?新一代光储电站系统以及210至尊系列“黄金尺寸”组件闪耀欧洲
     6月16日,德国Intersolar展会圆满落幕。天合光能携新一代光储电站系统解决方案以及领先的至尊N型700W超高功率组件首度亮相欧洲市场。此外,包括中版型605W及小版型450W在内的210“黄金尺寸”全系列N型组件,以及新一代N型i-TOPcon先进技术吸引了大量专业参观者深度交流。 01“黄......