- Python 基础
- Python - 首页
- Python - 概述
- Python - 历史
- Python - 特性
- Python vs C++
- Python - Hello World 程序
- Python - 应用领域
- Python - 解释器
- Python - 环境搭建
- Python - 虚拟环境
- Python - 基本语法
- Python - 变量
- Python - 数据类型
- Python - 类型转换
- Python - Unicode 系统
- Python - 字面量
- Python - 运算符
- Python - 算术运算符
- Python - 比较运算符
- Python - 赋值运算符
- Python - 逻辑运算符
- Python - 位运算符
- Python - 成员运算符
- Python - 身份运算符
- Python - 运算符优先级
- Python - 注释
- Python - 用户输入
- Python - 数字
- Python - 布尔值
- Python 控制语句
- Python - 控制流
- Python - 决策
- Python - if 语句
- Python - if else
- Python - 嵌套 if
- Python - match-case 语句
- Python - 循环
- Python - for 循环
- Python - for-else 循环
- Python - while 循环
- Python - break 语句
- Python - continue 语句
- Python - pass 语句
- Python - 嵌套循环
- Python 函数与模块
- Python - 函数
- Python - 默认参数
- Python - 关键字参数
- Python - 仅限关键字参数
- Python - 位置参数
- Python - 仅限位置参数
- Python - 可变参数
- Python - 变量作用域
- Python - 函数注解
- Python - 模块
- Python - 内置函数
- Python 字符串
- Python - 字符串
- Python - 字符串切片
- Python - 修改字符串
- Python - 字符串连接
- Python - 字符串格式化
- Python - 转义字符
- Python - 字符串方法
- Python - 字符串练习
- Python 列表
- Python - 列表
- Python - 访问列表元素
- Python - 修改列表元素
- Python - 添加列表元素
- Python - 删除列表元素
- Python - 遍历列表
- Python - 列表推导式
- Python - 排序列表
- Python - 复制列表
- Python - 合并列表
- Python - 列表方法
- Python - 列表练习
- Python 元组
- Python - 元组
- Python - 访问元组元素
- Python - 更新元组
- Python - 解包元组
- Python - 遍历元组
- Python - 合并元组
- Python - 元组方法
- Python - 元组练习
- Python 集合
- Python - 集合
- Python - 访问集合元素
- Python - 添加集合元素
- Python - 删除集合元素
- Python - 遍历集合
- Python - 合并集合
- Python - 复制集合
- Python - 集合运算符
- Python - 集合方法
- Python - 集合练习
- Python 字典
- Python - 字典
- Python - 访问字典元素
- Python - 修改字典元素
- Python - 添加字典元素
- Python - 删除字典元素
- Python - 字典视图对象
- Python - 遍历字典
- Python - 复制字典
- Python - 嵌套字典
- Python - 字典方法
- Python - 字典练习
- Python 数组
- Python - 数组
- Python - 访问数组元素
- Python - 添加数组元素
- Python - 删除数组元素
- Python - 遍历数组
- Python - 复制数组
- Python - 反转数组
- Python - 排序数组
- Python - 合并数组
- Python - 数组方法
- Python - 数组练习
- Python 文件处理
- Python - 文件处理
- Python - 写入文件
- Python - 读取文件
- Python - 重命名和删除文件
- Python - 目录
- Python - 文件方法
- Python - OS 文件/目录方法
- Python - OS 路径方法
- 面向对象编程
- Python - OOPs 概念
- Python - 类与对象
- Python - 类属性
- Python - 类方法
- Python - 静态方法
- Python - 构造函数
- Python - 访问修饰符
- Python - 继承
- Python - 多态
- Python - 方法重写
- Python - 方法重载
- Python - 动态绑定
- Python - 动态类型
- Python - 抽象
- Python - 封装
- Python - 接口
- Python - 包
- Python - 内部类
- Python - 匿名类和对象
- Python - 单例类
- Python - 包装类
- Python - 枚举
- Python - 反射
- Python 错误与异常
- Python - 语法错误
- Python - 异常
- Python - try-except 块
- Python - try-finally 块
- Python - 抛出异常
- Python - 异常链
- Python - 嵌套 try 块
- Python - 用户自定义异常
- Python - 日志记录
- Python - 断言
- Python - 内置异常
- Python 多线程
- Python - 多线程
- Python - 线程生命周期
- Python - 创建线程
- Python - 启动线程
- Python - 加入线程
- Python - 线程命名
- Python - 线程调度
- Python - 线程池
- Python - 主线程
- Python - 线程优先级
- Python - 守护线程
- Python - 线程同步
- Python 同步
- Python - 线程间通信
- Python - 线程死锁
- Python - 中断线程
- Python 网络编程
- Python - 网络编程
- Python - Socket 编程
- Python - URL 处理
- Python - 泛型
- Python 库
- NumPy 教程
- Pandas 教程
- SciPy 教程
- Matplotlib 教程
- Django 教程
- OpenCV 教程
- Python 杂项
- Python - 日期与时间
- Python - 数学
- Python - 迭代器
- Python - 生成器
- Python - 闭包
- Python - 装饰器
- Python - 递归
- Python - 正则表达式
- Python - PIP
- Python - 数据库访问
- Python - 弱引用
- Python - 序列化
- Python - 模板
- Python - 输出格式化
- Python - 性能测量
- Python - 数据压缩
- Python - CGI 编程
- Python - XML 处理
- Python - GUI 编程
- Python - 命令行参数
- Python - 文档字符串
- Python - JSON
- Python - 发送邮件
- Python - 扩展
- Python - 工具/实用程序
- Python - GUIs
- Python 高级概念
- Python - 抽象基类
- Python - 自定义异常
- Python - 高阶函数
- Python - 对象内部
- Python - 内存管理
- Python - 元类
- Python - 使用元类进行元编程
- Python - 模拟和存根
- Python - Monkey Patching
- Python - 信号处理
- Python - 类型提示
- Python - 自动化教程
- Python - Humanize 包
- Python - 上下文管理器
- Python - 协程
- Python - 描述符
- Python - 诊断和修复内存泄漏
- Python - 不可变数据结构
- Python 有用资源
- Python - 问答
- Python - 在线测验
- Python - 快速指南
- Python - 参考
- Python - 速查表
- Python - 项目
- Python - 有用资源
- Python - 讨论
- Python 编译器
- NumPy 编译器
- Matplotlib 编译器
- SciPy 编译器
Python writelines() 方法
Python 的 writelines() 方法将一系列字符串写入文件。该序列可以是任何产生字符串的可迭代对象,通常是字符串列表。
当该方法将一系列字符串写入文件时,它首先写入内部缓冲区;一旦该缓冲区已满,内容就会被传输到当前文件。由于这种缓冲机制,文本可能直到调用 flush() 或 close() 方法后才会实际显示在文件中。
如果当前文件为空,该方法会从开头添加内容;但如果它已经包含一些文本,则添加此文本的位置取决于文件指针的位置;而此位置根据文件模式而变化。各种情况如下:
- 如果文件以写入模式 (w 或 w+) 打开,则文件中的现有文本将被擦除,文件指针移动到文件开头。因此,在这种情况下,writelines() 方法从开头写入。
- 如果文件以追加模式 (a 或 a+) 打开,则现有文本保持不变,文件指针保持在文件末尾。因此,新文本将添加到现有内容之后。
- 如果文件以读写模式 (r+) 打开,则指针移动到文件开头并替换文件中的现有内容。但是,不会替换整个文本;writelines() 方法只用新字符串对象的字符替换现有字符串中的字符。文件中剩余的文本保持不变。
- 如果文件以读取模式 (r) 打开,此方法无效。
语法
以下是 Python 文件 writelines() 方法的语法:
fileObject.writelines( sequence )
参数
sequence − 这是字符串的序列。
返回值
此方法不返回值。
示例
考虑一个包含字符串的演示文件“foo.txt”。
This is 1st line This is 2nd line This is 3rd line This is 4th line This is 5th line
以下示例演示了 Python 文件 writelines() 方法的用法。演示文件以写入 (w) 模式打开,因此文件中的现有内容将被擦除,并使用此方法插入新内容。由于此方法不返回值,因此必须直接检查文件以查看反映出的更改。
# Open a file in write mode fo = open("foo.txt", "w") print("Name of the file: ", fo.name) # Assuming file has following 5 lines # This is 1st line # This is 2nd line # This is 3rd line # This is 4th line # This is 5th line # Write a new line into the file seq = ["This is the new line", '\n', "This is another new line"] line = fo.writelines(seq) print("Check the file to see the reflected changes") # Close opened file fo.close()
当我们运行上述程序时,它会产生以下结果:
Name of the file: foo.txt Check the file to see the reflected changes
示例
在上面的例子中,需要打开文件来检查更改是否生效。但是我们也可以尝试在终端本身显示文件内容。为此,一旦使用 `writelines()` 方法重写文件,我们就关闭文件。然后,以读取 (r) 模式再次打开此文件,并使用 `read()` 方法读取文件内容。
# Open a file in write mode fo = open("foo.txt", "w") print("Name of the file: ", fo.name) # Assuming file has following 5 lines # This is 1st line # This is 2nd line # This is 3rd line # This is 4th line # This is 5th line # Write a new line seq = ["This is the new line", '\n', "This is another new line"] line = fo.writelines(seq) # Close opened file fo.close() # Open the file again in read mode fo = open("foo.txt", "r") line = fo.read() print("File Contents:", line) # Close opened file again fo.close()
运行上面的程序后,输出将如下所示在终端上显示:
Name of the file: foo.txt File Contents: This is the new line This is another new line
示例
如果尝试以写入 (w) 模式打开目录中不存在的文件,则会创建一个具有给定名称的新文件。在下面的示例中,`writelines()` 方法在此文件中调用,并将新内容插入其中。
# Open a non-existent file in write mode fo = open("new.txt", "w") print("Name of the file: ", fo.name) # Write a new text seq = ["Hello", '\n', "Welcome to Tutorialspoint"] line = fo.writelines(seq) print("Check the file to see the reflected changes") # Close opened file fo.close()
让我们编译并运行给定的程序,输出将如下所示:
Name of the file: new.txt Check the file to see the reflected changes
示例
当文件以追加 (a 或 a+) 模式打开时,也可以使用 `writelines()` 方法。
在这个例子中,一个名为“foo.txt”的文件以追加模式“a”打开。由于文件以追加模式打开,`writelines()` 方法将内容写入文件的末尾。使用 `write()` 方法,新行紧跟在字符串的最后一个字符之后;但使用 `writelines()` 方法,由于换行符和字符串作为对象传递给列表,新字符串将追加到下一行。文件内容将在终端本身显示。
# Let the test file contain the following strings # Hello! # This is Tutorialspoint # Welcome # Open the test file in append mode fo = open("test.txt", "a") print("Name of the file: ", fo.name) seq = ['\n', "This is the new line"] fo.writelines(seq) # Close opened file fo.close() # Open the file again in read mode fo = open("test.txt", "r") line = fo.read() print("File Contents:", line) # Close opened file again fo.close()
程序编译并运行后,输出将如下所示在终端显示:
Name of the file: test.txt File Contents: Hello! This is Tutorialspoint Welcome This is the new line
示例
如果在使用读写模式 (r+) 打开的文件上使用 `writelines()` 方法,指针将移动到文件的开头,并替换文件中现有的内容。
在下面的示例中,我们以“r+”模式打开现有文件“foo.txt”。文件中现有的字符将从开头被传递作为列表的字符串对象中的字符替换。文件中剩余的文本保持不变。
# Open the test file in append mode fo = open("foo.txt", "r+") print("Name of the file: ", fo.name) seq = ["This is a new line", '\n', "This is another new line", '\n'] fo.writelines(seq) print("Check the file to see the reflected changes") # Close opened file again fo.close() # Open the file again in read mode fo = open("foo.txt", "r") line = fo.read() print("File Contents:", line) # Close opened file again fo.close()
让我们编译并运行上面的程序,得到如下结果:
Name of the file: foo.txt Check the file to see the reflected changes File Contents: This is a new line This is another new line d line This is 4th line This is 5th line