文件处理是编程中的常见任务。Python 提供了多种方式来读写文件,使其成为处理文件数据的强大工具。本章将详细介绍 Python3 中的文件操作方法。
打开文件
打开一个文件,使用内置函数 open()。此函数返回一个文件对象,该对象支持读取、写入和其它操作。open() 函数的基本语法如下:
file_object = open(file_name, mode)
- file_name:要打开的文件名。
- mode:打开文件的方式。常见的模式有:
'r':只读模式(默认)。如果文件不存在,则会抛出异常。'w':写入模式,会覆盖已存在的文件。如果文件不存在,则创建新文件。'a':追加模式,在文件末尾添加内容。如果文件不存在,则创建新文件。'b':二进制模式,与上述模式结合使用,例如'rb'表示读取二进制文件。'+':更新模式,可以同时读写文件。通常与'r'或'w'结合使用,例如'r+'或'w+'。
示例代码:
f = open('example.txt', 'w')写入文件
文件打开后,可以使用文件对象的 write() 方法向文件中写入内容。
f.write(str)
write() 方法接受一个字符串作为参数,并将其写入到文件中。如果要写入的内容不是字符串,需要先转换为字符串。
示例代码:
f = open('example.txt', 'w')
f.write('Hello, world!\n')
f.close()读取文件
文件打开后,可以使用文件对象的 read() 方法从文件中读取内容。
str = f.read(size)
- size:可选参数,指定读取的字节数。如果不指定,则读取整个文件。
示例代码:
f = open('example.txt', 'r')
content = f.read()
print(content)
f.close()逐行读取文件
除了使用 read() 方法外,还可以使用循环逐行读取文件内容。这通常使用 for 循环和 readline() 方法来实现。
line = f.readline()
每次调用 readline() 方法都会读取下一行内容,直到文件结束。当到达文件末尾时,readline() 返回空字符串。
示例代码:
f = open('example.txt', 'r')
while True:
line = f.readline()
if not line:
break
print(line.strip()) # 使用 strip() 方法去除行末的换行符
f.close()读取所有行
可以使用 readlines() 方法一次性读取文件中的所有行,并返回一个包含每一行内容的列表。
list_of_lines = f.readlines()
示例代码:
f = open('example.txt', 'r')
lines = f.readlines()
for line in lines:
print(line.strip())
f.close()关闭文件
完成文件操作后,记得关闭文件。这可以通过调用文件对象的 close() 方法实现。
f.close()
不关闭文件可能导致数据丢失或资源泄露。Python 的 with 语句提供了一种更优雅的方式来管理文件,它会在代码块执行完毕后自动关闭文件。
示例代码:
with open('example.txt', 'r') as f:
content = f.read()
print(content)文件定位
可以使用文件对象的 seek() 方法改变文件内部的读写位置。seek() 方法接受一个偏移量作为参数,并将文件指针移动到该偏移量的位置。
f.seek(offset, from_what)
- offset:偏移量,表示从
from_what指定的位置开始偏移多少字节。 - from_what:可选参数,表示参考点,默认值为
0,即文件开头。其他合法值为1(当前位置)和2(文件末尾)。
示例代码:
f = open('example.txt', 'r+')
f.write('First line\nSecond line\nThird line\n')
f.seek(5) # 将文件指针移动到第6个字节处
print(f.read(4)) # 从当前位置读取4个字节
f.close()文件属性
文件对象还提供了一些方法来获取文件的信息,如文件大小、修改时间等。
获取文件大小
可以使用 os.path.getsize() 函数获取文件大小。
import os
size = os.path.getsize('example.txt')
print(size)获取文件修改时间
可以使用 os.path.getmtime() 函数获取文件的最后修改时间。
import os
import time
mtime = os.path.getmtime('example.txt')
print(time.ctime(mtime))以上就是 Python3 文件操作的一些基本方法。通过这些方法,你可以轻松地进行文件的读写操作,从而处理各种文件数据。