当我们需要读写文本文件时,Python提供了内置的open()
函数以及文件对象,可以极其方便地打开、读取、写入文本文件。
打开文本文件
首先,我们需要使用open()
函数打开指定的文本文件,并得到一个文件对象。open()
函数的基本用法如下:
with open(filepath, mode) as f:
# 处理文本文件内容
其中,filepath
为要打开的文本文件的路径;mode
为打开文件的模式,可选值为:
'r'
:只读模式,打开文件只能读取,不能写入。'w'
:覆盖写模式,打开文件可以进行写入操作,会覆盖原有内容。'a'
:追加写模式,打开文件可以进行写入操作,在原有内容末尾添加新内容。'x'
:排他写模式,只打开不存在的文件进行写入操作,若文件已存在则会报错。
mode
参数还可添加一个b
表示二进制文件,例如'rb'
表示以二进制方式读取文件,'wb'
表示以二进制方式覆盖写入文件。
接下来,我们可以通过文件对象读取文件内容并进行相应操作。
读取文件内容
可以使用文件对象的read()
方法读取整个文本文件的内容,也可使用readline()
或readlines()
方法逐行或全部读取文件内容。
filepath = 'example.txt'
with open(filepath, 'r') as f:
text = f.read() # 读取整个文件内容
print(text)
f.seek(0) # 将文件指针移动到文件头
line = f.readline() # 读取文件第一行
print(line)
f.seek(0)
lines = f.readlines() # 读取文件全部行
print(lines)
上述代码中,seek()
方法用于移动文件指针位置,指定要读取文件的指定位置。若不指定位置,则默认从开始处读取。
我们也可以一行一行地迭代读取文件内容:
filepath = 'example.txt'
with open(filepath, 'r') as f:
for line in f:
print(line.strip()) # 使用strip()方法去除行末的回车换行符
遍历文件时,默认从头开始读取文件,每次读取一行,并将读取到的行迭代返回。
写入文件内容
通过文件对象,我们也可以将数据写入到文本文件中。以覆盖写模式为例,可使用write()
方法将指定内容写入文件。
filepath = 'example.txt'
with open(filepath, 'w') as f:
f.write('Hello, World!\n') # 写入新行
nums = [1, 2, 3]
for num in nums:
f.write(str(num) + '\n')
上述代码中,使用write()
方法逐行将要写入的内容添加到文件中,并在每行末尾添加回车换行符,以保证写入到文件内容是每行一个字符串。
我们也可以使用writelines()
方法一次性将多行内容写入文件:
filepath = 'example.txt'
with open(filepath, 'w') as f:
lines = ['Hello, World!\n', '1\n', '2\n', '3\n']
f.writelines(lines)
上述代码中,writelines()
方法接受一个字符串列表或可迭代对象作为参数,一次性将其中所有字符串写入文件。
注意,如果要写入文件的内容中包含字符串以外的其他类型的数据(如数字、列表、字典等),需要将其转换为字符串类型并再写入文件。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:如何利用Python打开txt格式的文件 - Python技术站