一、Python文件对象
在Python中,文件都是以文本或二进制形式进行操作的。要对一个文件进行操作,首先要用Python内置的open()函数创建一个文件对象。open()函数的基本语法如下:
open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
参数说明:
- file: 字符串,表示要打开的文件路径
- mode: 可选,表示打开文件的模式,默认是'r',即读取模式。其他常用的模式有:'w',即写入模式;'a',即追加模式;'b',即二进制模式,用于读取或写入二进制文件;'t',即文本模式。同时打开文本和二进制模式时,需要使用'+'(例如'r+')。
- buffering: 可选,设置缓冲区大小。如果为0,表示不使用缓冲(只在二进制模式下有效)。
- encoding: 可选,表示文件编码格式。
- errors: 可选,表示编码错误处理方式。
- newline: 可选,表示文本模式下一行结束符的处理。
- closefd: 可选,表示是否在文件关闭时同时关闭文件描述符。
- opener: 可选,用于创建自定义的开启器。
例如,使用下面的代码打开一个文件:
file = open("example.txt")
打开文件后,可以使用文件对象进行读写操作。例如:
f = open("example.txt")
print(f.read())
f.close()
上述代码中,使用read()方法读取文件中的全部内容,并将内容输出。最后,记得要关闭文件。
二、文件读取操作
1. 读取整个文件
使用read()方法可以一次性读取整个文件的内容到一个字符串中:
f = open("example.txt")
str = f.read()
print(str)
f.close()
2. 读取行
使用readline()方法可以一次读取一行内容:
f = open("example.txt")
str = f.readline()
print(str)
f.close()
readline()每次只读取一行,多次调用可以依次读取每一行的内容。
3. 读取所有行
可以使用readlines()方法将整个文件读取到一个列表中:
f = open("example.txt")
lines = f.readlines()
for line in lines:
print(line)
f.close()
上述代码中,通过readlines()方法将整个文件读取到一个列表lines中,然后使用for循环遍历列表并输出每一行的内容。
三、文件写入操作
要向文件写入内容,需要使用write()方法。例如,将一个字符串写入文件:
f = open("example.txt", "w")
f.write("Hello World!")
f.close()
如果要向文件中写入多行内容,可以使用writelines()方法。例如:
lines = ["line 1\n", "line 2\n", "line 3\n"]
f = open("example.txt", "w")
f.writelines(lines)
f.close()
上述代码中,writelines()方法接受一个包含多行内容的列表作为参数,将其写入到文件中。
四、文件关闭操作
在文件操作完毕后,一定要记得关闭文件。可以使用close()方法来关闭一个文件:
f = open("example.txt")
# 文件操作
f.close()
也可以使用with语句来自动关闭文件:
with open("example.txt") as f:
# 文件操作
使用with语句打开文件后,在with语句的作用域结束后,文件会自动关闭,无需手动调用close()方法。
五、总结
Python的文件操作非常简单灵活,可以通过open()函数创建文件对象,然后使用该对象进行读写操作。在使用完文件后,一定要记得关闭文件,以免出现文件句柄泄漏等问题。