Python入门教程第69篇 写入文本文件
Posted 不剪发的Tony老师
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python入门教程第69篇 写入文本文件相关的知识,希望对你有一定的参考价值。
本篇我们介绍如何将内容写入文本文件。
快速参考
以下代码演示了如何将一个字符串写入文本文件:
with open('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']
with open('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']
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.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 = '春眠不觉晓,处处闻啼鸟。夜来风雨声,花落知多少。'
with open('quotes.txt', 'w', encoding='utf-8') as f:
f.write(quote)
总结
- 使用 open() 函数和 ‘w’(‘a’)参数以写入(追加)模式打开文本文件。
- 写入文件之后使用 close() 方法关闭文件,或者使用 with 语句自动关闭文件。
- 使用 write() 和 writelines() 方法写入内容。
- 使用 encoding=‘utf-8’ 参数打开文件并写入 UTF-8 编码字符。
以上是关于Python入门教程第69篇 写入文本文件的主要内容,如果未能解决你的问题,请参考以下文章
100天精通Python(数据分析篇)——第69天:Pandas常用数据筛选方法(betweenisinlociloc)