文件操作
写入与读取
在Python中,操作文件的步骤为:
打开文件open()->读写文件read()或write()->关闭文件close(),打开文件通过函数来实现。
基础写法
#打开文件
file = open('路径','打开方式')
#读取文件
content = file.read()
#写入文件
file.write('写入的内容')
#关闭文件
file.close()
示例:
#写入
file1 = open('abc.txt','w',encoding = 'utf-8')
file1.write('我爱Python')
file1.close()
#读取
file2 = open('abc.txt','r',encoding = 'utf-8')
content = file2.read()
file2.close()
print(content)
open()函数
open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
参数解释
- file: 要打开的文件路径(绝对路径或相对路径)。
- mode: 打开文件的模式,默认是
'r'
(只读模式)。常用的模式包括:
打开方式 | 解释 |
---|---|
r | 只读 为输入打开一个文本文件(文件必须存在) |
w | 只写 为输出打开一个文本文件(如没有文件,则新建) |
a | 追加 向文本文件尾添加数据(如没有文件,则新建) |
x | 只写 创建一个文本文件并写入(文件必须不存在) |
rb | 只读 为输入打开一个二进制文件 |
wb | 只写 为输出打开一个二进制文件 |
ab | 追加 向二进制文件尾添加数据 |
r+ | 读写 为读写打开一个文本文件(文件必须已经存在) |
w+ | 读写 为读写建立一个新的文本文件 |
a+ | 读写 为读写打开一个文本文件(读写指针定位在最后) |
rb+ | 读写 为读写打开一个二进制文件 |
wb+ | 读写 为读写建立一个新的二进制文件 |
ab+ | 读写 为读写打开一个二进制文件读写文件的基本语法 |
- buffering: 设置文件的缓冲策略。
0
:无缓冲。1
:行缓冲(仅适用于文本模式)。- 大于
1
的整数:指定缓冲区大小。 -1
:使用默认缓冲区大小。
- encoding: 用于解码或编码文件的编码方式,例如
'utf-8'
。仅文本模式下有效。一般是’utf-8’或’gbk’。 - errors: 指定如何处理编码和解码错误,常见值有
'strict'
,'ignore'
,'replace'
。 - newline: 控制换行符在读取和写入时的行为。可选值有
None
,''
,'\n'
,'\r'
, 和'\r\n'
。 - closefd: 如果文件是通过文件描述符(而不是文件名)打开的,这个参数控制文件关闭时是否关闭文件描述符(默认为True)。
- opener: 一个可调用对象,用于通过自定义方式打开文件描述符,返回文件描述符的整数。
seek()函数
seek()
函数在 Python 中是用来改变文件当前位置的。该函数是文件对象的一部分,允许你移动文件读取指针到文件中的不同位置。这在处理大文件或者需要从特定位置读取数据时非常有用。
file.seek(offset, whence=0)
offset
:是移动操作的起始位置的偏移量,表示从哪里开始移动。正值表示向前移动,负值表示向后移动。whence
:这是可选参数,决定了offset
的参考点。它有三个可能的值:0
(默认值):从文件的开头计算偏移量(绝对文件位置)。1
:从当前文件位置计算偏移量。2
:将文件的EOF作为移动的起点。
假设我们有一个名为example.txt
的文件,其内容如下:
Hello World
This is a test file.
Python is great!
以下是一个使用seek()
函数的示例:
# 打开文件
with open('example.txt', 'r') as<