1.百度百科解释:
在文件 I/O 中,要从文件中读取数据,应用程序首先调用操作系统函数并传递文件名,然后选择文件的路径来打开文件。 该函数检索一个序列号,即文件句柄(文件),它是识别打开文件的唯一依据。 要从文件中读取数据块,应用程序需要调用函数并将文件句柄在内存中的地址以及要复制到操作系统的字节数传递给操作系统。 当任务完成时,通过调用系统函数关闭文件。
句柄是您为文件、设备、() 或管道指定的名称,可帮助您记住正在处理的名称,并隐藏缓存等的一些复杂性。
2. 文件句柄和文件描述符
在我们日常编程中,经常会遇到文件描述符(file)和文件句柄(file)这两个概念。 尤其是当我们需要开发跨平台(跨Linux)的项目时,这两个概念就会让人头疼。 ,那么我们来谈谈它们是什么以及它们的区别和联系。参考博客
文件管理 1、文件处理流程
1.打开文件,获取文件句柄并将其分配给变量
2.通过句柄操作文件
3. 关闭文件
二、基本操作
开放模式
文件句柄 = open('文件路径', '模式', 指定编码)
打开文件的模式有:
r,只读模式【默认模式,文件必须存在,不存在则报错】
w,只写模式[不可读; 如果不存在则创建; 清除内容(如果存在)]
x,只写模式[不可读; 不存在则创建,存在则报错】
a、追加模式[可读; 如果不存在则创建; 仅附加内容(如果存在)]
“+”表示一个文件可以同时读写
r+,读写[可读,可写]
w+,写和读[可读,可写]
x+,写和读[可读,可写]
a+、写读[可读、可写]
“b”表示以字节为单位进行操作
rb 或 r+b
wb 或 w+b
xb 或 w+b
ab 或 a+b
注意:b模式打开时,读取的内容是byte类型。 写入时还需要提供字节类型,不能指定编码。
操作
(1) 阅读
1. f.read() #按字符读取文件
2. f.() #逐行读取文件
3. f.() #逐行读取所有文件内容
(2) 写
f.write() #开始写入当前光标后的文件
(3) 闪存到硬盘
f.flush() # 立即刷新到硬盘
(4) 关闭文件
f.close() #关闭文件
(5) 光标移动
f.read() #按字符读取价格,按字符移动光标
f.seek() #按字节读取文件,并按字节移动光标;
f.seek( ,) #默认为0,表示从文件开头算起,1表示从当前位置算起,2表示从文件末尾算起。
f.() #默认是从当前光标位置开始截断,删除后面的内容。 可以传入参数以在此字节处截断。