Python基础部分:11、文件和光标移动

2022-12-26,,,

目录
一、文件操作
1、文件的概念
2、代码打开文件的方式
二、文件读写模式
1、'r' 只读模式 read
2、'w' 只写模式 write
3、'a' 尾部追写模式 add
三、文件操作模式
1、t 文本模式
2、b 二进制模式
四、文件诸多方法
1、read()
2、for循环
3、line
4、readable
5、write
6、flush
五、文件内光标的移动

一、文件操作

1、文件的概念

1.文件就是计算机暴露给用户操作硬盘的快捷方式

2.计算机的文件,就是用来储存某种信息的数据

3.在计算机中,文件是以二进制的方式储存信息的

2、代码打开文件的方式

方式一:
f = open(文件路径, 读写模式, encoding='utf8')
f.close() 方式二: # 子代码运行结束后会自动调用close方法关闭资源
with open(文件路径, 读写模式,encoding='utf8') as f: 须知:
# 1、open方法的第一个参数是文件路径,并且撬棍跟一些字母的组合会产生特殊的含义导致路径查找混乱 为了解决该问题可以在字符串的路径前面加字母r
D:\a\n\t
r'D:\a\n\t'
# 2、with一次性可打开多个文件
with open() as f1,open() as f2,open() as f3:

二、文件读写模式

1、'r' 只读模式 read

	只能读,不能写
1.文件路径不存在:直接报错
with open(r'b.txt','r',encoding='utf8') as f:
print(f.read())
2.文件路径存在:正常读取内容
with open(r'a.txt', 'r', encoding='utf8') as f:
print(f.read())

2、'w' 只写模式 write

	只能写,不能看
1.文件路径不存在: # 创建新的文件
with open(r'b.txt','r',encoding='utf8') as f:
pass
2.文件路径存在: # 先清空文件内容,在重新写入
with open(r'a.txt', 'r', encoding='utf8') as f:
f.write('编写内容') 须知:
# 1、编写的内容需要自己加入换行符,在保存后u而要注意他的存在

3、'a' 尾部追写模式 add

	只能在文件末尾添加数据
1.文件路径不存在: # 创建新的文件
with open(r'b.txt','a',encoding='utf8') as f:
pass
2.文件路径存在: # 在文件末尾添加
with open(r'a.txt', 'a', encoding='utf8') as f:
f.write('编写内容')

​ 当我们在编写代码的时候 有些部分不知道写什么具体代码 但是也不能空着不写

​ 这个时候可以使用关键字: pass

作用:是为了保证程序结构的完整性,否则会报错

三、文件操作模式

1、t 文本模式

	文本模式为默认模式
1、读写模式简写:r、w、a
全称:rt、wt、at 须知:
# 1、只能操作文本文件
# 2、读写以字符为单位
# 3、需要指定encoding参数,不填写则采用计算机默认的编码

2、b 二进制模式

	byte模式
1、不是默认的模式,需要指定生成
rb、wb、ab 须知:
# 1、可以操作任意文件
# 2、读写都是以bytes为单位
# 3、不需要指定encoding参数,不需要编码

不管是哪种模式,针对文件路径是否存在的情况都是一样的

四、文件诸多方法

1、read()

代码表现:
文件名.read() 须知:
# 1、一次性读取文件内容,并且光标停留在文件末尾,继续读取则没有内容
# 2、当文件内容比较多的时候,该方法还可能会造成计算机内存溢出
# 3、括号内可以填写数字,在文本模式下,表示读取几个字符
# 4、通常一个中文三个字节(或更多)一个英文字母一个字节

2、for循环

代码表现:
for 数据值 in 需要遍历的文件: 须知:
# 1、一行行读取文件内容 避免内存溢出现象的产生

3、line

1、readline
代码表现:
文件名.readline() 须知:
# 1、一次只读一行内容 2、readlines
代码表现:
文件名.readline() 须知:
# 1、一次性读取文件内容,会按照行数组织成列表的一个个数据值

4、readable

代码表现:
代码表现:
文件名.readable() 须知:
# 1、判断文件是否具备读取数据能力

5、write

1、write
用于向文件中写入指定数据
代码表示:
f = open("a.txt", 'w')
f.write("写入一行新数据")
f.close() 2、writeable
用来判断文件是否可写入数据
代码表示:
f = open("nhooo.txt", "a")
print(f.writable())
可以写入: Ture
不可写入: False 3、writelines
用于接收一个列表,一次性将列表中所有数据写入
代码表示:
f = open('a.txt', 'r')
n = open('b.txt','w+')
n.writelines(f.readlines())
n.close()
f.close()

6、flush

	用于刷新内部缓冲区,这是在python中处理fila处理时的最佳实践,可以在将新文本写入/添加到文件之前清除内部缓冲区。将内存中文件数据立刻刷到硬盘 等价于ctrl + s
代码表示:
file_object.flush()

五、文件内光标的移动

1、seek()

	移动文件的读取指针到指定位置。seek函数需要使用文件对象进行调用,无返回值。
seek()有三种用法:
seek(offset,whence)
offset 控制光标移动的位移量(字节)
whence 模式
0 基于文件开头移动多少字节
1 基于光标当前所在位置移动多少字节
2 基于文件末尾移动多少字节
ps:1和2只能在二进制模式下使用 0无所谓

2、tell()

	用来获取光标当前的位置(移动的字节数)
代码表示:
文件名.tell()
# 返回光标当前所在的字节数

Python基础部分:11、文件和光标移动的相关教程结束。

《Python基础部分:11、文件和光标移动.doc》

下载本文的Word格式文档,以方便收藏与打印。