主页
  • 主页
  • 分类
  • 热文
  • 教程
  • 面试
  • 标签
Python

Python 基础

Python 主页
Python 概述
Python 历史
Python 功能
Python 与 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 文件/目录方法
Python OS.Path 方法

Python 面向对象编程

Python OOP 概念
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 套接字编程
Python URL 处理
Python 泛型

Python 杂项

Python Date and Time
Python math模块
Python 迭代器
Python 生成器
Python 闭包
Python 装饰器
Python 递归
Python 正则表达式
Python Pip
Python 数据库访问
Python 弱引用
Python 序列化
Python 模板技术
Python 输出格式化
Python 性能测量
Python 数据压缩
Python 通用网关接口
Python XML 处理
Python 用户界面(GUI)
Python 命令行参数
Python Docstrings
Python JSON
Python 发送电子邮件
Python 进一步扩展
Python 工具/实用程序
Python GUI

Python 高级概念

Python 抽象基类
Python 自定义异常
Python 高阶函数
Python 对象的内部机制
Python 内存管理
Python 元类
Python 元编程
Python 模拟与桩
Python 猴子补丁
Python 信号处理
Python 类型提示
Python 进行自动化
Python Humanize包
Python 上下文管理器
Python 协程
Python 描述符
Python 内存泄漏
Python 不可变数据结构

基础

Python 主页
Python 概述
Python 历史
Python 功能
Python 与 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 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 OS.Path 方法

面向对象编程

Python OOP 概念
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 URL 处理
Python 泛型

杂项

Python Date and Time
Python math模块
Python 迭代器
Python 生成器
Python 闭包
Python 装饰器
Python 递归
Python 正则表达式
Python Pip
Python 数据库访问
Python 弱引用
Python 序列化
Python 模板技术
Python 输出格式化
Python 性能测量
Python 数据压缩
Python 通用网关接口
Python XML 处理
Python 用户界面(GUI)
Python 命令行参数
Python Docstrings
Python JSON
Python 发送电子邮件
Python 进一步扩展
Python 工具/实用程序
Python GUI

高级概念

Python 抽象基类
Python 自定义异常
Python 高阶函数
Python 对象的内部机制
Python 内存管理
Python 元类
Python 元编程
Python 模拟与桩
Python 猴子补丁
Python 信号处理
Python 类型提示
Python 进行自动化
Python Humanize包
Python 上下文管理器
Python 协程
Python 描述符
Python 内存泄漏
Python 不可变数据结构

Python 文件写入


上一章 下一章

文件写入涉及到以特定模式打开文件、向其中写入数据,然后关闭文件以确保所有数据都被保存并且资源被释放。Python 提供了一个内置的 open() 函数来处理文件操作,并且有多种方法可以用来写入数据。

打开文件用于写入

打开文件用于写入是执行写入操作的第一步。open() 函数用来以不同的模式打开文件,每种模式适用于特定的情况。

open() 函数

Python 中的 open() 函数用来打开一个文件。它至少需要一个参数,即文件名,并可选第二个参数来指定打开文件的模式。

文件写入模式

以下是主要的文件写入模式:

  • w(写入模式):以写入模式打开文件。如果文件已存在,则会清空(清空)文件后开始写入;如果文件不存在,则创建新文件。
  • a(追加模式):数据被写入到文件末尾。如果文件不存在,则创建新文件。
  • x(独占创建模式):以独占方式创建文件。如果文件已经存在,则操作失败。
  • b(二进制模式):当与其他模式结合使用时,以二进制模式打开文件。
  • +(更新模式):以更新(读取和写入)模式打开文件。

示例:以写入模式打开文件

此模式用于每次打开文件时都从头开始写入数据:

file = open("example.txt", "w")
file.write("Hello, World!")
file.close()
print("File opened successfully!!")

输出结果:

File opened successfully!!

示例:以追加模式打开文件

此模式用于在不改变现有内容的情况下向文件末尾添加数据:

file = open("example.txt", "a")
file.write("Appending this line.\n")
file.close()
print("File opened successfully!!")

输出结果:

File opened successfully!!

使用 write() 方法写入文件

write() 方法用来将单一字符串写入到文件中。这使得它可以适用于各种基于文本的文件操作。

write() 方法接受一个参数:你想要写入文件的字符串。它将字符串的确切内容写入到文件中而不添加任何额外的字符,例如换行符。

示例

下面的例子中,我们以写入模式打开 example.txt 文件,并使用 write() 方法写入字符串:

# 以写入模式打开文件
with open("example.txt", "w") as file:
    file.write("Hello, World!\n")
    file.write("This is a new line.\n")
print("File opened successfully!!")

输出结果:

File opened successfully!!

使用 writelines() 方法写入文件

writelines() 方法用来将字符串列表写入到文件中。列表中的每个字符串都会依次写入文件,不会自动添加任何换行字符。

示例

在此示例中,我们创建了一个包含多个字符串的列表 lines,每个字符串以换行符结尾。然后,我们以写入模式打开一个文件 example.txt 并使用 writelines() 方法一次性写入所有字符串:

# 要写入文件的行列表
lines = ["First line\n", "Second line\n", "Third line\n"]

# 以写入模式打开文件
with open("example.txt", "w") as file:
    file.writelines(lines)

print("File opened successfully!!")

输出结果:

File opened successfully!!

写入新文件

在 Python 中写入新文件涉及创建新文件(或覆盖现有文件)并将所需内容写入其中。这里我们将解释写入新文件所涉及的步骤:

  1. 使用 open() 函数以写入模式 ("w" 或 "wb" 对于二进制文件) 创建或打开文件。
  2. 使用 write() 或 writelines() 方法写入数据。
  3. 确保在写入之后正确关闭文件,通常使用 with 语句进行自动处理。

示例

下面的例子中,我们创建一个 foo.txt 文件,并向其中写入给定的内容,最后关闭该文件:

# 打开一个文件
fo = open("foo.txt", "w")
fo.write("Python is a great language.\nYeah its great!!\n")

# 关闭已打开的文件
fo.close()

如果你用类似记事本这样的文本编辑器应用程序打开这个文件,它将包含以下内容:

Python is a great language.
Yeah its great!!

在二进制模式下写入新文件

默认情况下,对文件对象进行的读/写操作是在文本字符串数据上进行的。如果我们需要处理不同类型的文件,如媒体文件(mp3)、可执行文件(exe)或图片(jpg),则必须在读/写模式前加上 'b' 前缀以二进制模式打开文件。

写入二进制数据到文件

要将二进制数据写入文件,请以二进制写入模式 ('wb') 打开文件。下面的例子演示了这一点:

# 以二进制写入模式打开文件
with open('test.bin', 'wb') as f:
   # 二进制数据
   data = b"Hello World"  
   f.write(data)

将文本字符串转换为字节

将文本字符串转换为字节可以使用 encode() 函数。当你需要将文本数据作为二进制数据写入时,这是有用的:

# 以二进制写入模式打开文件
with open('test.bin', 'wb') as f:
   # 将文本字符串转换为字节
   data = "Hello World".encode('utf-8')  
   f.write(data)

向现有文件写入

当现有文件以写入模式 ('w') 打开时,其先前的内容会被清除。以写权限打开文件将其视为新文件。若要在不删除其内容的情况下向现有文件添加数据,则应以追加模式 ('a') 打开文件。

示例

下面的例子演示了如何以追加模式打开文件并在其中添加新的文本:

# 以追加模式打开文件
fo = open("foo.txt", "a")
text = "TutorialsPoint has a fabulous Python tutorial"
fo.write(text)

# 关闭已打开的文件
fo.close()

如果你用类似记事本这样的文本编辑器应用程序打开这个文件,它将包含以下内容:

Python is a great language.
Yeah its great!!
TutorialsPoint has a fabulous Python tutorial

在读写模式下写入文件

当以 'w' 或 'a' 模式打开文件用于写入时,无法在文件的较早位置执行写入操作。然而,'w+' 模式允许在不关闭文件的情况下同时进行读写操作。seek() 函数用于将读/写指针移动到文件内的任意期望位置。

使用 seek() 方法

seek() 方法用于设置文件内读/写指针的位置。seek() 方法的语法如下:

fileObject.seek(offset[, whence])

其中,

  • offset —— 这是指定文件内读/写指针的位置。
  • whence —— 这是可选的,默认为 0 表示绝对文件定位,其他值为 1 表示相对于当前位置定位,2 表示相对于文件末尾定位。

示例

下面的程序演示了如何以读写模式 ('w+') 打开文件,写入一些初始数据,移动到特定位置,然后重写部分文件内容:

# 以读写模式打开文件
fo = open("foo.txt", "w+")

# 向文件写入初始数据
fo.write("This is a rat race")

# 将读/写指针移到第 10 字节
fo.seek(10, 0)

# 从当前位置读取 3 字节
data = fo.read(3)

# 将读/写指针移回到第 10 字节
fo.seek(10, 0)

# 用新文本覆盖现有内容
fo.write('cat')

# 关闭文件
fo.close()

如果我们以读模式打开该文件(或在 'w+' 模式下定位到起始位置)并读取内容,它将显示如下:

This is a cat race
上一章 下一章
阅读号二维码

关注阅读号

联系二维码

联系我们

© 2024 Yoagoa. All rights reserved.

粤ICP备18007391号

站点地图