文件处理是编程中的常见任务。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 文件操作的一些基本方法。通过这些方法,你可以轻松地进行文件的读写操作,从而处理各种文件数据。