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

快速参考

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

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篇 写入文本文件相关推荐

  1. Python入门教程详解

    Python入门教程 目录 1. 简介 2. 安装 3. 基本语法 4. 数据类型 5. 条件语句 6. 循环 7. 函数 8. 模块 9. 异常处理 10. 文件输入输出 1. 简介 Python是 ...

  2. python语言入门教程-菜鸟学Python入门教程大盘点|7个多月的心血总结

    原标题:菜鸟学Python入门教程大盘点|7个多月的心血总结 阅读本文大概需要5分钟 菜鸟学python已经写了70几篇,入门的教程已经快写完了,我把入门的文章整理了一下,下面是入门篇的一些总结,也是 ...

  3. python入门教程收藏_python入门教程:超详细保你1小时学会Python,快来收藏看看...

    简介:简介(转发文章+私信[Python]获取资料方式)1.Hello world安装完Python之后,打开IDLE(Python GUI) ,该程序是Python语言解释器,你写的语句能够立即运行 ...

  4. Linux Capabilities 入门教程--进阶实战篇

    该系列文章总共分为三篇: Linux Capabilities 入门教程:概念篇 Linux Capabilities 入门教程:基础实战篇 Linux Capabilities 入门教程:进阶实战篇 ...

  5. python十分钟教程_简洁的十分钟Python入门教程

    [简介] Python是一种动态解释型的编程语言.Python可以在Windows.UNIX.MAC等多种操作系统上使用,也可以在Java..NET开发平台上使用. [特点] 1 Python使用C语 ...

  6. 《假如编程是魔法之零基础看得懂的Python入门教程 》——(七)我把魔法变成了积木

    学习目标 了解魔法积木的使用--自定义函数 了解魔法积木的结果反馈--自定义函数返回值 了解魔法积木的原料传递--自定义函数传参 了解魔法积木的类型分类--类与对象 推荐 1.<备受好评的看得懂 ...

  7. 《假如编程是魔法之零基础看得懂的Python入门教程 》——(六)精简魔法更强大

    学习目标 了解对相似逻辑的简化编写--循环 推荐 1.<备受好评的看得懂的C语言入门教程> 目录 第一篇:<假如编程是魔法之零基础看得懂的Python入门教程 >--(一)既然 ...

  8. 《假如编程是魔法之零基础看得懂的Python入门教程 》——(五)我的魔法竟然有了一丝逻辑

    学习目标 了解魔法世界中的结构表现--缩进 了解魔法世界的逻辑判断--if 了解魔法世界的多次逻辑判断--ifelse嵌套 了解魔法世界中的逻辑运算--且 and 与或 or 推荐 1.<备受好 ...

  9. 《假如编程是魔法之零基础看得懂的Python入门教程 》——(三)使用初始魔法跟编程魔法世界打个招呼吧

    学习目标 完成显示魔法的使用--输出print 完成传入魔法的使用--输入input 使魔法生效--运行python文件 目录 第一篇:<假如编程是魔法之零基础看得懂的Python入门教程 &g ...

最新文章

  1. GLSL实现图像处理
  2. RedLock实现原理
  3. 微软发布Azure Pipelines,开源项目可无限制使用CI/CD
  4. JavaScript学习(七十五)—图解浅拷贝和深拷贝
  5. asyncio 文件io高并发_用 asyncio 封装文件读写
  6. 特征选择 ReliefF算法
  7. php foreach 过滤条件_PHP+Redis实现延迟任务实现完成订单
  8. Soar:一款 Web 可视化的 SQL 优化工具
  9. 翱文中华灯谜大全 v1.1 免费下载--IT man
  10. 【破解APP抓包限制】Xposed+JustTrustMe关闭SSL证书验证!
  11. php如何去除文件扩展名,php怎样去掉文件扩展名_后端开发
  12. 网站被黑总被跳转到其他网站的处理解决过程
  13. 手机云便签怎么设置休息日免打扰?
  14. 8个经典智能电子锁方案精选合辑
  15. 【控制系统的微分方程】
  16. ALTERA的配置方式简介
  17. BUAA(2021春)第一次上机选择+填空(含解析)
  18. 转载,常用SQL注入语句整理
  19. 向插件中添加guc参数
  20. vba python 结合_xlwings利用VBA调用python

热门文章

  1. Yarn框架和工作流程简介
  2. Hibernate:Acquisition Attempt Failed Clearing pending acquires.
  3. android word分页,控制分页
  4. 技术里的故事里的技术
  5. 程序员如何修炼项目管理能力?
  6. involution理解
  7. 用毕安格将投影坐标的3dmax模型转换为3dtiles
  8. 信息学奥赛 python 教程_Python在信息学竞赛中的运用及Python的基本用法(详解)
  9. java 基本数据类型所占字节数
  10. [PaPaPa][需求说明书][V0.1]