当前位置: 首页 > news >正文

67. Python的绝对路径

67. Python的绝对路径

文章目录

  • 67. Python的绝对路径
    • 1. 准备工作
    • 2. 路径
    • 3. 绝对路径
      • 3.1 概念
      • 3.2 查看绝对路径的方法
    • 4. 课堂练习
    • 5. 用绝对路径读取txt文件
    • 6. 加`\`改写绝对路径
      • 6.1 转义字符知识回顾
      • 6.2 转义字符改写
    • 7. 总结

1. 准备工作

对照下图,新建文件夹和txt文件

在这里插入图片描述

  1. 在电脑D盘新建1个文件夹,命名为安迪

  2. 安迪文件夹里新建2个文件夹,分别命名为工作生活

  3. 安迪文件夹里新建1个txt文件,命名为笔记.txt,在笔记.txt文件中写入“这是我的第300篇笔记”。

  4. 安迪文件夹里新建1个txt文件,命名为new.txt,在new.txt文件中写入“路径里含有转义字符,程序会报错!”。

  5. 工作文件夹里新建1个txt文件,命名为目标.txt,在目标.txt文件中写入“2023年的目标是新增1万个关注者!”。

  6. 生活文件夹里新建1个txt文件,命名为旅游.txt,在旅游.txt文件中写入“我想去西藏!”。

  7. 生活文件夹里新建1个年度预算文件夹,在年度预算文件夹里新建一个旅游经费.txt文件,在旅游经费.txt文件中写入“旅游经费2万元。”。

  8. 生活文件夹里新建1个路径.py文件。

【备注】

在这里插入图片描述

新建一个txt文件,将文件名改成路径.py也能新建一个py文件。

2. 路径

在Python中,路径是指文件所存储位置。

通常有绝对路径和相对路径2种2表述方法。

3. 绝对路径

3.1 概念

绝对路径是指文件在硬盘上真正存在的路径。

就是从盘符(C盘、D盘、E盘、F盘)开始一直到文件所在的具体位置。

绝对路径是以磁盘名称开头,如 C: 或者 D: ,具体的文件或文件夹名称做结尾。

绝对路径是唯一的,只有一个。

3.2 查看绝对路径的方法

方法1:复制文件地址

【目标任务】

查看笔记.txt文件的绝对路径。

  1. 点击文件笔记.txt

  2. 然后按住【shift】;

  3. 点击鼠标右键;

  4. 最后点击【复制文件地址】。

在这里插入图片描述

得到的文件地址如下:

"D:\安迪\笔记.txt"

"D:\安迪\笔记.txt"就是笔记.txt文件在硬盘上真正存在的路径。

"D:\安迪\笔记.txt"以盘符D:\开头,以笔记.txt结尾,我们称为绝对路径。

方法2:直接点击文件上方的搜索栏

【目标任务】

查看旅游经费.txt文件的绝对路径。

  1. 找到旅游经费.txt文件;

  2. 点击文件上方的搜索框;

在这里插入图片描述

  1. 复制文件搜索框的内容;
D:\安迪\生活\年度预算
  1. 复制的内容后面补上带文件类型的文件名,即旅游经费.txt
D:\安迪\生活\年度预算\旅游经费.txt

得到的即为文件的绝对路径。

通过比对,大家应该能发现复制文件地址的方法更为便捷。

并且复制文件地址的方法得到的地址自带引号,我们后面编写代码可以直接使用。

4. 课堂练习

查看我们准备工作中新建的所有txt文件的绝对路径,并赋值给变量。

file_1 = "D:\安迪\工作\目标.txt"
file_2 = "D:\安迪\生活\年度预算\旅游经费.txt"
file_3 = "D:\安迪\生活\旅游.txt"
file_4 = "D:\安迪\笔记.txt"
file_5 = "D:\安迪\new.txt"

5. 用绝对路径读取txt文件

【目标任务】

用绝对路径读取目标.txt文件内容。

  1. 首先打开路径.py文件;

  2. 路径.py文件中原样输入下面的代码;

file_1 = "D:\安迪\工作\目标.txt"  
txt = open (file_1, encoding='utf-8') 
print(txt.read())

【终端输出】

2023年的目标是新增1万个关注者!

【代码解析】

file_1 = "D:\安迪\工作\目标.txt"  

file_1存储的是目标.txt的绝对路径。

txt = open (file_1, encoding='utf-8') 
  1. txt是变量名;

  2. open是Python的一个内置函数,作用是打开文件;

  3. 这里的open函数里面有2个参数;

  4. 第1参数file_1是文件的绝对路径:“D:\安迪\工作\目标.txt”;

  5. 第2参数是文件编码格式:encoding=‘utf-8’。

print(txt.read())

read也是Python的一个内置函数,作用是读取打开文件中的数据。

【备注】

open、read函数,文件编码格式后面会有详细的讲解。

这里主要讲解路径,大家只需修改变量file_1就能实现打开读取文件的功能。

【课堂练习:读取所有txt文件内容】

  1. 读取旅游经费.txt
file_2 = "D:\安迪\生活\年度预算\旅游经费.txt"
txt = open (file_2, encoding='utf-8') 
print(txt.read())

【终端输出】

旅游经费2万元。
  1. 读取旅游.txt
file_3 = "D:\安迪\生活\旅游.txt"
txt = open (file_3, encoding='utf-8') 
print(txt.read())

【终端输出】

我想去西藏!
  1. 读取笔记.txt
file_4 = "D:\安迪\笔记.txt"
txt = open (file_4, encoding='utf-8') 
print(txt.read())

【终端输出】

这是我的第300篇笔记!
  1. 读取new.txt
file_5 = "D:\安迪\new.txt"
txt = open (file_5, encoding='utf-8') 
print(txt.read())

【终端输出】

OSError: [Errno 22] Invalid argument: 'D:\\安迪\new.txt'

同样的方法读取new.txt程序报错。

Invalid argument: 'D:\\安迪\new.txt':无效参数:“D:\安迪\new.txt '。

读取new.txt文件程序报错,是因为文件路径中含有转义字符\n

在这里插入图片描述

红色框中的\n就是转义字符。

6. 加\改写绝对路径

6.1 转义字符知识回顾

在这里插入图片描述

【备注】上图来源于风变编程。

一个\反斜杆加上一个特殊的英文字母、字符就是Python中的转义字符。

转义字符语法:\+字母\字符。

6.2 转义字符改写

file_5 = "D:\安迪\new.txt"

当要读取的文件路径如上所示时,程序会将\n理解成程序员要表达的是转义字符\n

因此,当表示文件的路径中含有转义字符时,程序会报错。

这时我们需要修改文件的路径,即在转义字符\n前再加一个\反斜杠,程序就不会报错。

在Python中,转义字符\\两个反斜杆就表示一个反斜杠\字符。

file_5 = "D:\安迪\\new.txt"
txt = open (file_5, encoding='utf-8') 
print(txt.read())

【终端输出】

路径里含有转义字符,程序会报错!

【备注】编程中,很多同学不会去找哪个是转义字符,会直接在复制的地址中,在路径中的每个反斜杆前面都增加一个反斜杆\,就能避免转义字符问题。

file_1 = "D:\\安迪\\工作\\目标.txt"
file_2 = "D:\\安迪\\生活\\年度预算\\旅游经费.txt"
file_3 = "D:\\安迪\\生活\\旅游.txt"
file_4 = "D:\\安迪\\笔记.txt"
file_5 = "D:\\安迪\\new.txt"
txt1 = open (file_1, encoding='utf-8') 
txt2 = open (file_2, encoding='utf-8') 
txt3 = open (file_3, encoding='utf-8') 
txt4 = open (file_4, encoding='utf-8') 
txt5 = open (file_5, encoding='utf-8') 
print(txt1.read())
print(txt2.read())
print(txt3.read())
print(txt4.read())
print(txt5.read())

【终端输出】

2023年的目标是新增1万个关注者!
旅游经费2万元。
我想去西藏!
这是我的第300篇笔记!
路径里含有转义字符,程序会报错!

7. 总结

在这里插入图片描述

相关文章:

67. Python的绝对路径

67. Python的绝对路径 文章目录67. Python的绝对路径1. 准备工作2. 路径3. 绝对路径3.1 概念3.2 查看绝对路径的方法4. 课堂练习5. 用绝对路径读取txt文件6. 加\改写绝对路径6.1 转义字符知识回顾6.2 转义字符改写7. 总结1. 准备工作 对照下图,新建文件夹和txt文件…...

VHDL语言基础-组合逻辑电路-加法器

目录 加法器的设计: 半加器: 全加器: 加法器的模块化: 四位串行进位全加器的设计: 四位并行进位全加器: 串行进位与并行进位加法器性能比较: 8位加法器的实现: 加法器的设计&…...

内存检测工具Dr.Memory在Windows上的使用

之前在https://blog.csdn.net/fengbingchun/article/details/51626705 中介绍过Dr.Memory,那时在Windows上还不支持x64,最新的版本对x64已有了支持,这里再总结下。 Dr.Memory源码地址https://github.com/DynamoRIO/drmemory,最新发…...

J6412四网口迷你主机折腾虚拟机教程

今天给大家做一个四网口迷你主机折腾虚拟机的安装教程,主机采用的是maxtang大唐NUC J6412 intel i226V四网口的迷你主机,这款主机它是不能直接装上NAS的,必须使用虚拟机系统,近期研究了下然后做了一个教程分享给大家。 首先需要做…...

电子招标采购系统—企业战略布局下的采购寻源

​ 智慧寻源 多策略、多场景寻源,多种看板让寻源过程全程可监控,根据不同采购场景,采取不同寻源策略, 实现采购寻源线上化管控;同时支持公域和私域寻源。 询价比价 全程线上询比价,信息公开透明&#xff…...

elasticsearch 之 mapping 映射

当我们往 es 中插入数据时,若索引不存在则会自动创建,mapping 使用默认的;但是有时默认的映射关系不能满足我们的要求,我们可以自定义 mapping 映射关系。 mapping 即索引结构,可以看做是数据库中的表结构&#xff0c…...

2023年rabbitMq面试题汇总2(5道)

一、如何确保消息接收⽅消费了消息?接收⽅消息确认机制:消费者接收每⼀条消息后都必须进⾏确认(消息接收和消息确认是两个不同操作)。只有消费者确认了消息,RabbitMQ才能安全地把消息从队列中删除。这⾥并没有⽤到超时…...

电视剧《狂飙》数据分析,正片有效播放市场占有率达65.7%

哈喽大家好,春节已经过去了,朋友们也都陆陆续续开工了,小编在这里祝大家开工大吉!春节期间,一大批电视剧和网剧上映播出,其中电视剧《狂飙》以不可阻挡之势成功成为“开年剧王”。这里小编整理了一些《狂飙…...

cas单点登录后重定向次数过多问题以及调试cas-dot-net-client

问题描述: web项目应用cas作为单点登录站点,登录后无法打开WEB项目的页面,报错,说重定向次数过多。 老实说,这种问题,以前遇到过不少,是我这种半桶水程序员的噩梦。解决这种问题,不…...

【监控】Prometheus(普罗米修斯)监控概述

文章目录一、监控系统概论二、基础资源监控2.1、网络监控2.2、存储监控2.3、服务器监控2.4、中间件监控2.5、应用程序监控(APM)三、Prometheus 简介3.1、什么是 Prometheus3.2、优点3.3、组件3.4、架构3.5、适用于什么场景3.6、不适合什么场景四、数据模…...

opencv+python物体检测【03-模仿学习】

仿照练习:原文链接 步骤一:准备图片 正样本集:正样本集为包含“识别物体”的灰度图,一般大于等于2000张,尺寸不能太大,尺寸太大会导致训练时间过长。 负样本集:负样本集为不含“识别物体”的…...

计算机科学基础知识第二节讲义

课程链接 运行环境:WSL Ubuntu OMZ终端 PS:看到老师终端具有高亮和自动补全功能,我连夜肝出oh-my-zsh安装教程,实现了此功能。 这节课主要讲变量的语法、控制流程、shell功能等内容。 修改终端用户名,输入密码后重启…...

openssl genrsa 命令详解

文章目录一、openssl genrsa 命令介绍二、openssl genrsa 命令的语法及选项三、实例1、生成512位的 RSA 秘钥,输出到屏幕。2、生成512位 RSA 私钥,输出到指定的文件 genrsa.txt3、生成 1024 位 RSA 秘钥,采用 des 算法加密,加密密…...

C语言标准 —— C89(C90)、C99、C11、C17、C2X

C语言主要的三个标准:C89(C90)、C99、C11、K&R C 指的是 C 语言的原始版本。1978年,C 语言的发明者丹尼斯里奇(Dennis Ritchie)和布莱恩柯林(Brian Kernighan)合写了一本…...

基于Java+Dubbo设计的智能公交查询系统

一、项目背景 随着经济的飞速发展,人们的生活质量有了较大的提高,城市居民的出行变得越来越频繁,城市交通也面临越来越多的挑战。城市公共交通具有客流量大、成本低、效率高、节约资源等优势,因此,如何大力发展公交产业,鼓励人们乘坐公交出行,进而改善交通状况,是一个值得思考…...

go语言的并发编程

并发编程是 Go语言的一个重要特性,而 go语言也是基于此而设计出来的。 本文将会介绍如何使用go-gc中的“runtime”方法实现 go语言中的并发编程。 在之前的文章中,我们已经对 runtime方法进行了详细介绍,这次文章将对 runtime方法进行深入分析,并讲解如何在go-gc中使用该方…...

亚马逊要求UL94防火测试阻燃测试标准及项目

UL94认证是什么?分几个等级?是如何表示各等级?带电的产品上架亚马逊都需要相关的UL报告,需要有ISO 17025资质的实验室出具的测试报告才能正常销售和恢复链接,UL94防火测试则是其中一项。UL94试验共有五种:1.B级的水平燃烧试验2.…...

ClickHouse 合并树表引擎 MergeTree 原理分析

目录 前言 MergeTree 存储 MergeTree思想 MergeTree存储结构 MergeTree查询 索引检索 数据Sampling 数据扫描 建表​ 数据存储​...

用YOLOv8推荐的Roboflow工具来训练自己的数据集

YOLOv8是Ultralytics公司开发的YOLO目标检测和图像分割模型的最新版本,相较于之前的版本,YOLOv8可以更快速有效地识别和定位图像中的物体,以及更准确地分类它们。 作为一种深度学习技术,YOLOv8需要大量的训练数据来实现最佳性能。…...

三层交换机【实验】

目录 1、要求: 2、拓扑: 3、创建vlan和端口定义并划入vlan: 4、创建以太网中继Eth-Trunk使sw1和sw2的相互冗余并且不浪费链路: 5、使用mstp定义组和对应的根: 6、配置网关冗余: 7、核心层的路由的IP配…...

Vim 调用外部命令学习笔记

Vim 外部命令集成完全指南 文章目录 Vim 外部命令集成完全指南核心概念理解命令语法解析语法对比 常用外部命令详解文本排序与去重文本筛选与搜索高级 grep 搜索技巧文本替换与编辑字符处理高级文本处理编程语言处理其他实用命令 范围操作示例指定行范围处理复合命令示例 实用技…...

TDengine 快速体验(Docker 镜像方式)

简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能,本节首先介绍如何通过 Docker 快速体验 TDengine,然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker,请使用 安装包的方式快…...

Mybatis逆向工程,动态创建实体类、条件扩展类、Mapper接口、Mapper.xml映射文件

今天呢,博主的学习进度也是步入了Java Mybatis 框架,目前正在逐步杨帆旗航。 那么接下来就给大家出一期有关 Mybatis 逆向工程的教学,希望能对大家有所帮助,也特别欢迎大家指点不足之处,小生很乐意接受正确的建议&…...

电脑插入多块移动硬盘后经常出现卡顿和蓝屏

当电脑在插入多块移动硬盘后频繁出现卡顿和蓝屏问题时,可能涉及硬件资源冲突、驱动兼容性、供电不足或系统设置等多方面原因。以下是逐步排查和解决方案: 1. 检查电源供电问题 问题原因:多块移动硬盘同时运行可能导致USB接口供电不足&#x…...

【Go语言基础【12】】指针:声明、取地址、解引用

文章目录 零、概述:指针 vs. 引用(类比其他语言)一、指针基础概念二、指针声明与初始化三、指针操作符1. &:取地址(拿到内存地址)2. *:解引用(拿到值) 四、空指针&am…...

人机融合智能 | “人智交互”跨学科新领域

本文系统地提出基于“以人为中心AI(HCAI)”理念的人-人工智能交互(人智交互)这一跨学科新领域及框架,定义人智交互领域的理念、基本理论和关键问题、方法、开发流程和参与团队等,阐述提出人智交互新领域的意义。然后,提出人智交互研究的三种新范式取向以及它们的意义。最后,总结…...

【无标题】路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论

路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论 一、传统路径模型的根本缺陷 在经典正方形路径问题中(图1): mermaid graph LR A((A)) --- B((B)) B --- C((C)) C --- D((D)) D --- A A -.- C[无直接路径] B -…...

第7篇:中间件全链路监控与 SQL 性能分析实践

7.1 章节导读 在构建数据库中间件的过程中,可观测性 和 性能分析 是保障系统稳定性与可维护性的核心能力。 特别是在复杂分布式场景中,必须做到: 🔍 追踪每一条 SQL 的生命周期(从入口到数据库执行)&#…...

从“安全密码”到测试体系:Gitee Test 赋能关键领域软件质量保障

关键领域软件测试的"安全密码":Gitee Test如何破解行业痛点 在数字化浪潮席卷全球的今天,软件系统已成为国家关键领域的"神经中枢"。从国防军工到能源电力,从金融交易到交通管控,这些关乎国计民生的关键领域…...

aardio 自动识别验证码输入

技术尝试 上周在发学习日志时有网友提议“在网页上识别验证码”,于是尝试整合图像识别与网页自动化技术,完成了这套模拟登录流程。核心思路是:截图验证码→OCR识别→自动填充表单→提交并验证结果。 代码在这里 import soImage; import we…...