摘要:在本教程中,你将学习在 Python 中编写文本文件的各种方法。
省流速览
以下示例说明了如何将字符串写入文本文件:
with open('readme.txt', 'w') as f:
f.write('readme')
写入文本文件的步骤
要在 Python 中写入文本文件,请按照以下步骤操作:
首先,使用
open()
函数以写入(或追加)模式打开文本文件。其次,使用
write()
或writelines()
方法将内容写入文本文件。最后,使用
close()
方法关闭文件。
以下展示了 open()
函数的基本语法:
f = open(file, mode)
open()
函数接受许多参数。但这里主要关注前两个参数:
file
参数指定要打开以进行写入的文本文件的路径。mode
参数指定要以何种模式打开文本文件。
要写入文本文件,可以使用以下模式之一:
open()
函数返回一个文件对象,该对象具有两个用于将文本写入文件的有用方法write()
和 writelines()
。
write()
方法将字符串写入文本文件。writelines()
方法一次性将字符串列表写入文件。writelines()
方法接受一个可迭代对象,而不仅仅是列表,因此你可以将字符串元组、字符串集合等传递给writelines()
方法。
要向文本文件写入一行,你需要手动添加换行符:
f.write('\n')
f.writelines('\n')
写入文本文件示例
以下示例展示了如何使用 write()
函数将文本列表写入文本文件:
lines = ['Readme', 'How to write text files in Python']
with open('readme.txt', 'w') as f:
for line in lines:
f.write(line)
f.write('\n')
如果 readme.txt
文件不存在open()
函数将创建一个新文件。
以下展示了如何将文本字符串列表写入文本文件:
lines = ['Readme', 'How to write text files in Python']
with open('readme.txt', 'w') as f:
f.writelines(lines)
如果将列表中的每个元素都视为一行,则需要像这样将其与换行符连接起来:
lines = ['Readme', 'How to write text files in Python']
with open('readme.txt', 'w') as f:
f.write('\n'.join(lines))
追加文本文件
要追加到文本文件,你需要以追加模式打开文本文件。以下示例将新行追加到 readme.txt
文件中:
more_lines = ['', 'Append text files', 'The End']
with open('readme.txt', 'a') as f:
f.write('\n'.join(more_lines))
输出:
写入 UTF-8 文本文件
如果使用前面示例中的代码将 UTF-8 字符写入文本文件,你将遇到类似这样的错误:
UnicodeEncodeError: 'charmap' codec can't encode characters in position 0-44: character maps to <undefined>
要打开文件并将 UTF-8 字符写入文件,你需要将 encoding='utf-8'
参数传递给 open()
函数。
以下示例展示了如何将 UTF-8 字符写入文本文件:
quote = '成功を収める人とは人が投げてきたレンガでしっかりした基盤を築くことができる人のことである。'
with open('quotes.txt', 'w', encoding='utf-8') as f:
f.write(quote)
总结
使用带有
w
或a
模式的open()
函数以追加方式打开文本文件。完成写入后,始终使用
close()
方法关闭文件,或者在打开文件时使用with
语句。使用
write()
和writelines()
方法向文本文件写入内容。将
encoding='utf-8'
传递给open()
函数,以将 UTF-8 字符写入文件。