【Python】文件

一. 什么是文件

数据因为表现形式的不同会被划分成各种各样的文件:

  • 电影(.mp4)
  • 歌曲(.mp3)
  • 图片(.jpg)
  • 文本(.txt)
  • 表格(.xlsx)

我们知道冯诺依曼体系结构包括:输入输出设备、存储器、运算器和处理器。其中存储器的存储体系又分为内存和硬盘:

  • 内存:变量就是存储在内存中
  • 硬盘:文件就是存储在硬盘中

对比内存和硬盘:

  1. 内存的空间更小,硬盘的空间更大
  2. 内存访问更快,硬盘访问更慢
  3. 内存成本更高,硬盘成本更低
  4. 内存的数据易丢失,硬盘的数据能持久化存储

我们电脑中C盘、D盘的内容都是硬盘上的内容,也都是文件:
在这里插入图片描述

二. 文件路径

文件夹也叫目录,它也属于文件。我们把一层层目录构成的字符串称为“文件的路径”,比如在我的电脑中QQ可执行程序的路径就是:C:\Program Files (x86)\Tencent\QQ\Bin

在这里插入图片描述

文件路径可以视为是文件在硬盘上的身份标识,每个文件对应的路径都是唯一的。知道了文件路径,就可以知道这个文件在硬盘上的详细位置;也就可以进一步的知道这个文件里面都有些什么。

补充说明
目录名之间,使用反斜杠 \ 来分隔,其实使用斜杆 / 也可以。前者 Windows 用的更多,在其他系统中更多的是使用斜杆来分隔,因为反斜杠在字符串中有特殊的含义,它可以表示转意。

三. 打开文件

创建一个文档文件 test.txt 用来测试:
在这里插入图片描述
在 Python 中打开文件使用open函数:

f = open('C:/Users/86158/Downloads/Python/test.txt', 'r')
print(f)
print(type(f))

-------运行结果-------
# 包含文件的路径、打开方式、编码方式这三个信息
<_io.TextIOWrapper name='C:/Users/86158/Downloads/Python/test.txt' mode='r' encoding='cp936'>
# Python内部给文件对象起的名字
<class '_io.TextIOWrapper'>

open 函数解析

在这里插入图片描述

补充说明

1)被打开的文件必须存在于给出的路径下,不然会抛异常

在这里插入图片描述

2)文件对象是个句柄
open 的返回值是一个文件对象,如何理解?

  • 文件的内容,是存储在硬盘上的。
  • 文件对象,是内存上的一个变量。后续对文件的读写,都是通过这个文件对象来进行操作的。

文件对象就像一个遥控器,而文件就好像一台电视机。我们要操作电视机(开关、调台、调音量),可以直接去按电视机上的按键,但是这样太麻烦了,我们通常是躺在沙发上通过遥控器来操作;类比文件,我们可直接去硬盘上去对文件进行读写等操作,同样为了方便我们更多的是通过文件对象去完成这些操作。

在计算机中,也把这样的远程操控的“遥控器”称为“句柄”。
在这里插入图片描述

四. 关闭文件

使用close方法关闭已经打开的文件:

f.close()

文件在打开、使用完了之后一定要关闭!

打开文件,其实是在申请一定的系统资源,不再使用文件的时候,资源就该及时释放;否则就可能造成文件资源泄露,进一步导致其他部分的代码无法顺利打开文件。

正是因为一个系统的资源是有限的,因此一个程序能打开的文件个数也是有上限的,通过下面代码测试

# 1、创建一个列表,用来存储文件对象
fList = [
Python 是一种易于学习又功能强大的编程语言。它提供了高效的高级数据结构,还有简单有效的面向对象编程。Python 优雅的语法和动态类型,以及解释型语言的本质,使它成为多数平台上写脚本和快速开发应用的理想语言。 Python 解释器及丰富的标准库以源码或机器码的形式提供,可以到 Python 官网 https://www.python.org/ 免费获取适用于各个主要系统平台的版本,并可自由地分发。这个网站还包含许多免费第三方 Python 模块、程序和工具以及附加文档的发布页面或链接。 Python 解释器易于扩展,可以使用 C 或 C++(或者其他可以通过 C 调用的语言)扩展新的功能和数据类型。Python 也可用于可定制化软件中的扩展程序语言。 这个教程非正式地介绍 Python 语言和系统的基本概念和功能。最好在阅读的时候准备一个 Python 解释器进行练习,不过所有的例子都是相互独立的,所以这个教程也可以离线阅读。 有关标准的对象和模块,参阅 Python 标准库。Python 语言参考 提供了更正式的语言参考。想要编写 C 或者 C++ 扩展可以参考 扩展和嵌入 Python 解释器 和 Python/C API 参考手册。也有不少书籍深入讲解Python 。 这个教程并没有完整包含每一个功能,甚至常用功能可能也没有全部涉及。这个教程只介绍 Python 中最值得注意的功能,也会让你体会到这个语言的风格特色。学习完这个教程,你将可以阅读和编写 Python 模块和程序,也可以开始学习更多的 Python 库模块,详见 Python 标准库。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值