文件及其应用场景

2025-10-07 21:26:14

文件及其应用场景

一, 文件的定义

文件的概念

内存中存放的数据在计算机关机后就会消失.要长久保存数据,就要使用硬盘、光盘、U 盘等设备.为了便于数据的管理和检索,引入了"文件"的概念.

一篇文章、一段视频、一个可执行程序,都可以被保存为一个文件,并赋予一个文件名。操作系统以文件为单位管理磁盘中的数据。一般来说,文件可分为文本文件、视频文件、音频文件、图像文件、可执行文件等多种类别.

文件操作的作用

在日常操作中,我们对文件的主要操作:

创建文件,打开文件,读写操作,关闭文件,…

文件操作的作用就是把一些内容(数据)存储存放起来,可以让程序下一次执行的时候直接使用,而不必重新制作一份,省时省力.

二, 文件的路径

1. 文件的绝对路径

绝对路径表示绝对概念, 一般都是从盘符开始 , 然后一级一级线下查找(不能越级), 直到找到我们要访问的文件即可.

比如访问C盘路径下的Python文件夹下面的python文件, 其完整路径:

Windows

C:\Python\python.txt

绝对路径一般路径固定了, 文件就不能进行移动, 另外在迁移的过程中会比较麻烦.

2. 文件的相对路径

相对路径表示相对概念, 不需要从盘符开始, 首先需要找到一个参考点 (就是Python文件本身)

同级关系: 我们要访问的文件与Python代码处于同一个目录, 平行关系, 同级关系的访问可以使用 ./文件名称或者直接写文件名称即可.上级关系: 如果我们要访问的文件在当前Python代码的升一级目录, 则我们可以通过==…/来访问上一级路径(如果是多级, 也可以通过…/…/…/==去一层一层向上访问).下级关系: 如果我们要访问的文件在与Python代码同级的某个文件夹中, 则我们可以通过==文件夹名称/==来访问某个目录下的文件.

三, open()函数打开文件

在Python,使用open()函数, 打开一个已经存在的文件, 或者创建一个新文件.

open()函数格式

f = open(name, mode)

# 注: 返回的结果是一个file文件对象 (后续会学习, 只需记住, 后续方法都是f.方法())

# name: 是要打开的目标文件的字符串(可以包含文件所在的具体路径).

# mode: 设置打开文件的模式(访问模式): 只读r, 写入w, 追加a, ...

r模式: 代表以只读模式打开一个已经存在的文件, 后续我们对这歌文件直接进行读取操作. 如果文件不存在, 则直接报错. 另外, r模式在打开文件时, 会将光标放在文件的第一行 (开始位置).

w模式: 代表以只写的模式打开一个文件, 文件不存在, 则自动创建该文件. w模式主要是针对文件写入而定义的模式. 但是, 要特别注意, w模式在写入时, 光标也是置于第一行同时还会清空原有文件内容.

a模式: 代表以追加模式打开一个文件, 文件不存在, 则自动创建改该文件. a模式主要也是针对文件写入而定义的模式. 但是与w模式有所不同, a模式不会清空文件的原有内容, 而是在文件的尾部追加内容.

入门案例

# 1. 打开文件

f = open('python.txt', 'w', encoding = 'utf-8')

# 2. 写入内容

f.write('人生苦短, 我学Python! ')

# 3. 关闭文件

f.close()

强调一下: 解决中文乱码问题, 默认情况下, 计算机常用编码ASCII, GBK, UTF-8

三, 文件的读取操作

read(size):

read(size)方法: 主要用于文本类型或者二进制文件 (图片, 音频, 视频, …) 数据的读取

size表示要从文件中读取的数据的长度 (单位是字符/字节), 如果没有传入size, 那么就表示读取文件中所有的数据.

# f.read() # 读取文件的所有内容

# f.read(1024) # 读取1024个字符长度的文件内容, 字母或数字

# 1. 打开文件

f = open('python.txt', 'r', encoding = 'utf-8')

# 2. 使用read()方法读取文件所有内容

contents = f.read()

print(contents)

# 3. 关闭文件,

f.close()

readlines():

readlines()方法: 主要用于文本类型数据的读取.

readlines()可以按照行的方式把整个文件中的内容进行一次性读取, 并且返 回的是一个列表, 其中每一行的数据为一个元素.

# 1. 打开文件

f = open('python.txt', 'r', encoding = 'utf-8')

# 2. 读取文件

lines = f.realines()

for line in lines:

print(line, end = '')

# 3. 关闭文件

f.close()

readline():

readline()方法: 一次读取一行内容, 每元运行一次readline()函数, 其就会将文件的指针向下移动一行.

# 1. 打开文件

f = open('python.txt')

# 2. while循环创建一个死循环

while True:

# 读取一行内容

content = file.readline()

# 判断是否读取到内容

if not content:

# 如果没有读取到内容, 则跳出循环

break

# 如果读取到内容, 则输出

print(content)

# 关闭文件

f.close()

四, 文件操作的mode模式

模式描述r以只读方式打开文件, 文件的指针将会放在文件的开头, 这是默认模式.rb以二进制格式打开一个文件用于只读, 文件指针将会放在文件的开头. 这个默认模式.r+打开一个文件用于读写, 文件指针将会放在文件的开头.rb+以二进制格式打开一个文件用于读写,文件指针将会放在文件的开头.w打开一个文件只用于写入,如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除,如果该文件不存在,创建新文件.wb以二进制格式打开一个文件只用于写入.如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件.w+打开一个文件用于读写.如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除.如果该文件不存在,创建新文件.wb+以二进制格式打开一个文件用于读写.如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除.如果该文件不存在,创建新文件.a打开一个文件用于追加.如果该文件已存在,文件指针将会放在文件的结尾.也就是说,新的内容将会被写入到已有内容之后.如果该文件不存在,创建新文件进行写入.ab以二进制格式打开一个文件用于追加.如果该文件已存在,文件指针将会放在文件的结尾.也就是说,新的内容将会被写入到已有内容之后.如果该文件不存在,创建新文件进行写入.a+打开一个文件用于读写.如果该文件已存在,文件指针将会放在文件的结尾.文件打开时会是追加模式.如果该文件不存在,创建新文件用于读写.ab+以二进制格式打开一个文件用于追加.如果该文件已存在,文件指针将会放在文件的结尾.如果该文件不存在,创建新文件用于读写.

虽然mode文件操作模式很多,但是我们只需要记住3个字符(r, w, a)即可.

r+, w+, a+ 代加号,功能全,既能读,又能写(区别在于指针到底指向不同)

rb, wb, ab代 b的字符,代表以二进制的形式对其进行操作,适合读取文本或二进制格式文件,如图片、音频、视频等格式

rb+,wb+,ab+ 代加号,功能全,既能读,又能写(区别在于指针到底指向不同)

五, 总结

Q1: 文件操作相关的函数有哪些

打开文件: open()读取数据: read(), readline(), readlines()关闭文件: close()

Q2: 文件操作的mode模式有哪些

r读, w写, a追加r+, w+, a+ 代加号,功能全,既能读,又能写(区别在于指针到底指向不同).rb, wb, ab代 b的字符,代表以二进制的形式对其进行操作,适合读取文本或二进制格式文件,如图片、音频、视频等格式.rb+,wb+,ab+ 代加号,功能全,既能读,又能写(区别在于指针到底指向不同).