当前位置: 首页 > 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配…...

Anolis 8.6 部署 Kafka 3.3.1 安装和测试(二)

动态初始化Kafka消费者实例一.Kafka 环境搭建二.动态初始化消费者1.Topic定义2.方法处理器工厂3.参数解析器(Copy SpringBoot 源码)4.消费接口和消费实现5.动态初始化1.关键类简介2.动态初始化实现一.Kafka 环境搭建 参考:Kafka搭建和测试 …...

sed和awk

文章目录1、sed的简单介绍2、sed的使用方法2.1 命令行格式2.2 案例2.3 sed结合正则使用2.4 脚本格式3、awk的简单介绍4、awk的使用方法4.1 命令行模式4.2 脚本模式5、awk内部相关变量5.1 案例6、awk工作原理7、awk进阶使用8、awk脚本编程8.1 案例1、sed的简单介绍 sed是流编辑…...

使用STM32 CUBE IDE配置STM32F7 用DMA传输多通道ADC数据

我的使用环境: 硬件:STM32F767ZGT6、串口1、ADC1、16MHz晶振、216MHz主频 软件:STM32 CUBE IDE 优点:不用定时触发采样,ADC数据是不停的实时更新,ADC数据的更新频率根据采样时钟和采样周期决定,…...

linux 学习(持续更新)

一:初识linux 新装操作环境: mac intel电脑 CentOS系统版本:CentOS-8.1.1911 在这里解释一下[chenllocalhost /]$这句话的含义: chenl是用户名,也就是你自己起的名字。 是分割的符号 localhost是主机名,也…...

Nacos【一】Nacos集群部署配置

系列文章目录 暂无 文章目录系列文章目录前言一、Nacos集群架构1.ip直连2. SLB3. 域名-SLB二、集群部署准备2.1 机器准备2.2 Nginx安装配置1.安装2.负载均衡配置2.3 nacos安装配置1.nacos节点2. MySQL准备1.Docker安装MySQL2. nacos对应数据库初始化三、 集群启动1.失败原因汇…...

“亚洲一号”也能上市?REITs背后的物流设施风起云涌

京东最近发生了两件大事,两件都与物流基础设施有关。 一件是2月8日,嘉实京东仓储物流封闭式基础设施证券投资基金(简称“京东仓储REIT”)正式登陆上交所,投资者获得了机会,去分享京东三处物流园区的收益&a…...

2023养老展,CBIAIE第十届中国北京国际老年产业博览会

8月招商季,第十届中国(北京)国际老年产业博览会再次盛大举办; CBIAIE北京国际老年产业博览会位域优势: ——北京,中国首都,世界一线城市,地处中国北部、华北平原北部,东…...

【Android -- 每日一问】现在 Android 怎么学?学什么?

不管在任何行业,任何岗位,初级技术人才总是供大于求;不管任何行业、岗位,技术过硬的也都是非常吃香的! 这几年 Android 新技术的迭代明显加速了,有来自外部跨平台新物种的冲击,有去 Java 化的商…...

JVM垃圾回收

概述 Java是支持自动垃圾回收的,有些语言不支持自动垃圾回收(C)自动垃圾回收不是Java的首创 垃圾是什么? 在 JVM 中垃圾是指在运行程序中没有任何指针指向的对象,这个对象就是需要被回收的垃圾。 哪些区域需要回收…...

clickhouse集群安装

单机安装 yum install yum-utilsrpm --import https://repo.clickhouse.com/CLICKHOUSE-KEY.GPGyum-config-manager --add-repo https://repo.clickhouse.com/rpm/clickhouse.reposudo yum install clickhouse-server clickhouse-client 配置文件 vim /etc/clickhouse-serve…...

如何做照片ppt模板下载网站/定制网站+域名+企业邮箱

2019年5月3日 星期五 补 最后一次,不要再补了! 1.RJ-54端口:在这种端口上通过双绞线连接以太网。 10Base-T的RJ-45端口标志为“ETH”,而100Base-TX的RJ-45端口标志为“10/100bTX”,这是因为快速以太网路由器采用10/100…...

网站设计合同/百度双十一活动

我是linux 的服务器,navicat12的客户端, 开始链接的时候需要开服务器上得对外爆漏端口 3306,方法: 添加指定需要开放的端口: firewall-cmd --add-port123/tcp --permanent 重载入添加的端口: firewall-cmd …...

建筑网结构/南宁seo怎么做优化团队

前言 Puerts,准确的说应该叫做:普洱TS。puerts是腾讯出品的一个游戏引擎下的TypeScript编程解决方案,基于Unreal和Unity双引擎。 或者换句话说:puerts 是 Unity/Unreal 的一个 JS 运行环境。让我们可以在Unity/Unreal里面通过js…...

b2b电子商务网站盈利模式/国家高新技术企业

计算机应用专业英文求职信导语:“人生在勤,不索何获”,我会努力工作,把工作做得更好,更出色来回报你的信任,愿与贵单位荣辱与共,与同事携手并进,在平凡的工作中来实现我人生的价值&a…...

海安做网站的公司/网推公司

1、汉字编码原理 到底怎么办到随机生成汉字的呢?汉字从哪里来的呢?是不是有个后台数据表,其中存放了所需要的所有汉字,使用程序随机取出几个汉字组合就行了呢?使用后台数据库先将所有汉字存起来使用时随机取出&#xf…...

竞价网站同时做优化可以吗/宁波seo网络推广咨询价格

一、使用背景. 1.1 当完成一个版本,需要,需要给这个版本打一个标签.见证某款软件的某一历史时刻. 二、Git tag的使用. 2.1 git tag(查看当前所有分支). git tag(当前没有版本信息). 2.2 git tag -a [tagname] (为最新一次提交打版本) 此时只是提交到了本地仓库,还没有推…...