本篇我们介绍如何将内容写入文本文件。
快速参考
以下代码演示了如何将一个字符串写入文本文件:
withopen('readme.txt','w')as f:
f.write('readme')
写入文本文件的步骤
在 Python 中写入文本文件的步骤如下:
- 首先,利用 open() 函数以写入或者追加模式打开一个文本文件。
- 其次,使用文件对象的 write() 或者 writelines() 方法写入文本。
- 最后,使用文件对象的 close() 方法关闭文件。
以下是 open() 函数的基本语法:
f =open(path_to_file, mode)
open() 函数支持多个参数,主要的参数包含两个:
- path_to_file 参数指定了文本文件的路径。
- mode 参数用于指定打开文件的模式。
对于写入操作,我们可以使用以下模式:
模式描述‘w’以写入模式打开文本文件‘a’以追加模式打开文本文件
open() 函数返回了一个文件对象,文件对象支持两种写入文件的方法:write() 和 writelines()。
write() 方法可以将一个字符串写入文本文件,writelines() 方法可以一次写入一个字符串列表。事实上,writelines() 方法支持一个可遍历对象作为参数,而不仅仅是字符串列表。因此我们可以传入一个字符串元组、字符串集合等。
以下代码可以用于写入一个换行符:
f.write('\n')
f.writelines('\n')
示例
以下示例说明了如何使用 write() 函数将一组文本写入文件:
lines =['Readme','How to write text files in Python']withopen('readme.txt','w')as f:for line in lines:
f.write(line)
f.write('\n')
如果 readme.txt 文件不存在,open() 函数将会创建一个新文件。
以下示例演示了如何使用 writelines() 函数将一个字符串列表写入文件:
lines =['Readme','How to write text files in Python']withopen('readme.txt','w')as f:
f.writelines(lines)
如果想要将列表的每个元素作为一行写入,需要连接一个换行符:
lines =['Readme','How to write text files in Python']withopen('readme.txt','w')as f:
f.write('\n'.join(lines))
追加文件内容
如果想要将内容追加到文本文件中,需要以追加模式打开文件。以下示例在 readme.txt 文件中增加了一些新的内容:
more_lines =['','Append text files','The End']withopen('readme.txt','a')as f:
f.writelines('\n'.join(more_lines))
Code language: JavaScript (javascript)
Output:
写入 UTF-8 编码文件
如果我们在前面的示例中写入 UTF-8 编码字符,将会返回以下错误:
UnicodeEncodeError:'charmap' codec can't encode characters in position 0-44: character maps to <undefined>
如果想要打开文件并写入 UTF-8 字符,需要为 open() 函数指定 encoding=‘utf-8’ 参数。例如:
quote ='春眠不觉晓,处处闻啼鸟。夜来风雨声,花落知多少。'withopen('quotes.txt','w', encoding='utf-8')as f:
f.write(quote)
总结
- 使用 open() 函数和 ‘w’(‘a’)参数以写入(追加)模式打开文本文件。
- 写入文件之后使用 close() 方法关闭文件,或者使用 with 语句自动关闭文件。
- 使用 write() 和 writelines() 方法写入内容。
- 使用 encoding=‘utf-8’ 参数打开文件并写入 UTF-8 编码字符。
版权归原作者 不剪发的Tony老师 所有, 如有侵权,请联系我们删除。