【Python入门教程】第69篇 写入文本文件

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

本篇我们介绍如何将内容写入文本文件。

快速参考

以下代码演示了如何将一个字符串写入文本文件

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 编码字符。
阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: python