67. Python的绝对路径

news2024/11/26 20:34:41

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. 总结

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/332983.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

小知识点:MySQL 的 redo log、undo log、binlog 以及 Java 监控 binlog

SQL 入库流程 服务器与 MySQL 建立连接依次经过 MySQL 服务器内存中 Server 层的分析器、优化器、执行器执行器根据执行计划操作 InnoDB 引擎InnoDB 从磁盘数据文件中将 data 读到缓冲池中修改之前,会写入 undo log 将 data 存起来然后将缓冲池中的 data 改成 new_d…

数据结构复习(三)顺序表oj

目录 27. 移除元素 26. 删除有序数组中的重复项 88. 合并两个有序数组 27. 移除元素 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。 不要使用额外的数组空间,你必须仅使用 O(1) 额外…

多数据库学习之GBase8s查询数据库表元信息常用SQL

多数据库学习之GBase8s查询数据库表元信息常用SQL简介常用SQL创建用户创建数据库及模式获取表元数据其他参考链接简介 背景介绍 GBase 8t是基于IBM informix源代码、编译和测试体系自主研发的交易型数据库产品。 南大通用安全数据库管理系统(简称 GBase 8s&#xff…

Linux基础命令2(常见的文件相关命令)

目录 查找文件命令 pwd 显示当前所在的工作目录(Print working directory) cd 切换命令(change directory) ls 查看目录下的文件(list) tree 查看目录下的子目录(查看目录结构&#…

Grafana 系列文章(十二):如何使用Loki创建一个用于搜索日志的Grafana仪表板

概述 创建一个简单的 Grafana 仪表板, 以实现对日志的快速搜索. 有经验的直接用 Grafana 的 Explore 功能就可以了. 但是对于没有经验的人, 他们如何能有一个已经预设了简单的标签搜索的仪表板,以帮助一些团队在排除故障时快速找到他们正在寻找的东西。虽然 Expl…

云仓仓储的运行模式是什么?

仓库能够简单地定义为一个规划空间,通常是一个用于处置和贮存货物的大型商业建筑。因而,仓储是指在这样一个规划空间中存储和处置货物所触及的一切过程。仓库中常见的货物包括:;机械零配件、建筑资料、废品农产品、家具和电子产品。仓库中的一…

【面试题】经典面试题:让 a == 1 a == 2 a == 3 成立?

一、问题解析 if (a == 1 && a == 2 && a == 3) {console.log(Win) } 复制代码 如何打印除Win? 看到题目的第一眼,我是蒙蔽的.怎么可能会有如此矛盾的情况发生呢?就相当于一个人怎么可能即是小孩,又是成年人,还是老年人呢? 冷静下来,发现一些端倪。

VHDL语言基础-组合逻辑电路-概述

目录 概述: 组合逻辑电路:——电路无记忆功能 组合逻辑电路的设计方法: 传统的设计方法:采用标准组件进行设计 组合逻辑电路的设计方法: 两种设计方法的比较: 概述: 数字电路按其完成逻辑…

[Android]图片加载库Glide

目录 Glide的介绍 Glide的基本使用 指定图片的格式 Glide占位符 指定图片的大小 过渡动画 图片变换 Generated API Glide的介绍 Glide是一个快速高效的Android图片加载库,可以自动加载网络,本地文件,app资源中的文件,注重于平…

数据存储技术复习(二)未完

module3存储是数据中心内的核心元素。请说明常用的存储选项及其特点。磁盘驱动器:具有很大的存储容量,随机读/写访问闪存驱动器:使用半导体介质,提供高性能,低功耗2.若某磁盘驱动器显示每个磁道有八个扇区&…

标准舆情监测平台解决方案及流程,TOOM舆情监测工作计划有哪些?

舆情监测流程一般包括:数据收集、数据分析、信息汇报三个部分。首先,通过多种途径收集舆情数据,如网络媒体、社交媒体、博客、论坛等;其次,对收集的数据进行分析,统计舆情趋势、舆情类型等;最后,根据舆情分…

【Java】TCP的三次握手和四次挥手

三次握手 TCP三次握手是一个经典的面试题,它指的是TCP在传递数据之前需要进行三次交互才能正式建立连接,并进行数据传递。(客户端主动发起的)TCP之所以需要三次握手是因为TCP双方都是全双工的。 什么是全双工? TCP任何…

Print: Entry, “:CFBundleIdentifier“, Does Not Exist解决办法

首先执行react-native info查看我的电脑环境是: React Native Environment Info: System: OS: macOS 10.15.5 CPU: (8) x64 Intel(R) Core(TM) i7-4870HQ CPU 2.50GHz Memory: 103.91 MB / 16.00 GB Shell: 5.7.1 - /bin/zsh Binaries: Node: 12.22.12 - ~/.nvm/ve…

vulnhub靶机试验DC-1

按照大佬的文章学习了一 遍:https://blog.csdn.net/ierciyuan/article/details/127282461 前言 参考大佬的blog进行一次实践,入门级的学习,写得不好请见谅! 本次靶场实战涉及信息收集、漏洞查找与利用、getshell、数据库渗透、密…

MySQL进阶篇之视图(view)

04、视图/存储过程/触发器 4.1、视图(view) 4.1.1、简介及基本语法 1、介绍 视图(View)是一种虚拟存在的表。视图中的数据并不在数据库中实际存在,行和列数据来自定义视图的查询中使用的表,并且是在使用视图时动态生成的。 通…

源码级别的讲解JAVA 中的CAS

没有CAS之前实现线程安全 多线程环境不使用原子类保证线程安全(基本数据类型) public class T3 {volatile int number 0;//读取public int getNumber(){return number;}//写入加锁保证原子性public synchronized void setNumber(){number;} }多线程环…

代码随想录【Day09】|28. 找出字符串中第一个匹配项的下标、459. 重复的子字符串、《字符串总结》

28. 找出字符串中第一个匹配项的下标 题目链接 题目描述: 实现 strStr() 函数。 给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。 示例 1: 输…

计算机图形学:改进的中点BH算法

作者:非妃是公主 专栏:《计算机图形学》 博客地址:https://blog.csdn.net/myf_666 个性签:顺境不惰,逆境不馁,以心制境,万事可成。——曾国藩 文章目录专栏推荐专栏系列文章序一、改进缘由二、…

qt连接mysql,自编译生成驱动文件

CMakeninja编译qt所需的mysql驱动文件 想用qt连接mysql数据库,但是在qt6.0版本之后都不自带驱动需要自己编译,过程中由于不熟悉cmake以及ninja,踩了一百个坑,简单记录一下。 写在前面 csdn上也有很多大佬写得用cmake-gui来编译…

代码随想录算法训练营第43天DP动态规划62不同路径63 不同路径2

文章目录LeetCode 62不同路径题目讲解思路LeetCode 63 不同路径ii题目讲解思路小结LeetCode 62不同路径 题目讲解 思路 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。 根据题意来看机器人只能进行向右…