解决:ValueError: binary mode doesn‘t take an encoding argument

news2024/12/25 22:41:52

解决:ValueError: binary mode doesn’t take an encoding argument

文章目录

  • 解决:ValueError: binary mode doesn't take an encoding argument
    • 背景
    • 报错问题
    • 报错翻译
    • 报错位置代码
    • 报错原因
    • 解决方法
      • 今天的分享就到此结束了

背景

在使用之前的代码时,报错:
f = open(target_file_path, ‘ab+’ ,encoding=‘utf-8’)
ValueError: binary mode doesn’t take an encoding argument

报错问题

       f = open(target_file_path, 'ab+' ,encoding='utf-8')
ValueError: binary mode doesn't take an encoding argument

报错翻译

主要报错信息内容翻译如下所示:

       f = open(target_file_path, 'ab+' ,encoding='utf-8')
ValueError: binary mode doesn't take an encoding argument

翻译:

	f = open(target_file_path, 'ab+' ,encoding='utf-8')
ValueError:二进制模式不采用编码参数

报错位置代码


...
	f = open(target_file_path, 'ab+' ,encoding='utf-8')
...

报错原因

经过查阅资料,发现是mode 参数值 ab+ 时,ab+ 操作时不支持指定encoding参数。
其中参数 ab+ 意思是以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。
然后就可以很明显的看出问题了,因为我是以“wb”格式打开的file,也就是以二进制的格式打开的file,但是我却要输入string类型进去,很明显就是错误的,只要把“ab+”改成“a+”就可以解决这个问题了。

附:不同模式打开文件的参数列表如下:

模式描述
t文本模式 (默认)。
x写模式,新建一个文件,如果该文件已存在则会报错。
b二进制模式。
+打开一个文件进行更新(可读可写)。
U通用换行模式(不推荐)。
r以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
rb以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。
r+打开一个文件用于读写。文件指针将会放在文件的开头。
rb+以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。
w打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
wb以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
w+打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
wb+以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
a打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
ab以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
a+打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
ab+以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。

小伙伴们按下面的解决方法即可解决!!!

解决方法

要解决这个错误,需要修改 mode 的参数值为 a+ 其中,参数 a+ 的意思是追加写入和读取。

正确的代码是:

    f = open(target_file_path, 'a+' ,encoding='utf-8')


今天的分享就到此结束了

欢迎点赞评论关注三连

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1260920.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

淼一科技为互联网企业销毁硬盘数据 拆除机房设备

在上海这座繁华的大都市,淼一科技以其专业的服务和卓越的技术,为众多互联网企业提供硬盘数据销毁和机房设备拆除服务。作为业界领先的数据安全解决方案提供商,淼一科技致力于保障客户数据的安全与隐私,为客户创造更高的商业价值。…

公网穿透和RTC

RTC RTC 是 Real-Time Communication 的简写,正如其中文名称 “即时通讯” 的意思一样,RTC 协议被广泛用于各种即时通讯领域,诸如: 在线教育;直播中的主播连麦 PK;日常生活的音视频电话;.....…

KaiwuDB 多模数据库-时序性能优化

随着物联网领域的快速发展,时序数据的产生和处理需求不断增长。为了满足实时性、高效性和准确性的要求,数据库需要进行时序性能优化,以提供快速的数据写入、实时查询和高效的数据存储与处理能力。 本期直播介绍了时序数据和时序数据库特征以…

ESP32-Web-Server编程-CSS 基础 2

ESP32-Web-Server编程-CSS 基础 2 概述 如上节所述,可以使用外部 CSS 文件来修饰指定的 HTML 文件。 外部引用 - 使用外部 CSS 文件。 当样式需要被应用到很多页面的时候,外部样式表将是理想的选择。使用外部样式表,就可以通过更改一个文件…

NV040C语音芯片:让自助ATM机使用更加安全快捷

近年来,移动支付方式的兴起、银行加强线上化服务、数字人民币项目推进等因素的影响,人们使用ATM机的频率呈现小幅度的下降趋势。然而,自助ATM机并未从我们的视野中消失,它们仍然在金融领域发挥着重要的作用。未来,ATM机…

分类预测 | Matlab实现NGO-KELM北方苍鹰算法优化核极限学习机分类预测

分类预测 | Matlab实现NGO-KELM北方苍鹰算法优化核极限学习机分类预测 目录 分类预测 | Matlab实现NGO-KELM北方苍鹰算法优化核极限学习机分类预测分类效果基本描述程序设计参考资料 分类效果 基本描述 1.Matlab实现NGO-KELM北方苍鹰算法优化核极限学习机分类预测(完…

成都爱尔樊映川院长讲解常见眼底病有哪些

一提到“眼底”这个眼科常用词汇,许多非医疗行业人士认为在眼球下方,其实不然,那眼底在哪呢?眼底其实是眼球内后部的组织,即眼球的内膜——视网膜、视乳头、黄斑和视网膜中央动静脉。 眼底病是一种病种繁多,病因复杂&…

Python Subprocess教程:创建和管理子进程的完整指南

更多Python学习内容:ipengtao.com 在Python中,Subprocess模块为我们提供了强大的工具,使得创建和管理子进程变得十分便捷。本文将深入探讨Subprocess的各种功能和用法,通过丰富的示例代码,带你领略其强大的子进程管理能…

Compensated Summation/Kahan‘s Summation的理解

阅读《Efficient Generation of Error-Inducing Floating-Point Inputs via Symbolic Execution》这篇论文时,文中提到的Commpensated Summation没看太懂,代码如下: 查阅资料发现Compensated Summation也叫Kahan’s Summation,该…

自己动手实现一个深度学习算法——七、卷积神经网络

文章目录 1.整体结构2.卷积层1)全连接层存在的问题2)卷积运算3)填充4)步幅5)3维数据的卷积运算6)结合方块思考7)批处理 3.池化层1)池化层的特征 4.卷积层和池化层的实现1&#xff09…

C Primer Plus讲解前置说明

说明 本来是准备接着写下去,写着就发现思路整理的有点杂乱无章。果然是“想一千次,不如去做一次”。所以这次准备基于《C Primer Plus》第六版给大家分享一下,也是自己梳理的一个过程。有关C语言的书很多,我选这本也恰巧是因为以前…

7种SQL进阶用法【转】

1.自定义排序(ORDER BY FIELD) 在MySQL中ORDER BY排序除了可以用ASC和DESC之外,还可以使使用自定义排序方式来实现 CREATE TABLE movies ( id INT PRIMARY KEY AUTO_INCREMENT, movie_name VARCHAR(255), actors VARCHAR(255), price DECIMAL(10,2) DEFAULT 50, release date…

L4级智能驾驶公交量产方案

1、自动驾驶分级 2、L4级自动驾驶技术方案 3、线控底盘 4、整车传感器方案 5、自动驾驶能力 6、运控平台

在Linux中对Docker中的服务设置自启动

先在Linux中安装docker,然后对docker中的服务设置自启动。 安装docker 第一步,卸载旧版本docker。 若系统中已安装旧版本docker,则需要卸载旧版本docker以及与旧版本docker相关的依赖项。 命令:yum -y remove docker docker-c…

【Docker】python flask 项目如何打包成 Docker images镜像 上传至阿里云ACR私有(共有)镜像仓库 集成Drone CI

一、Python环境编译 1、处理好venv环境 要生成正常的 requirements.txt 文件,我们就需要先将虚拟环境处理好 创建虚拟环境(可选): 在项目目录中,你可以选择使用虚拟环境,这样你的项目依赖将被隔离在一个…

Java 基础学习(二)运算符与分支流程控制

1 运算符 1.1 运算符概述 1.1.1 运算符概述 运算符是一种告诉计算机执行特定的数学或逻辑等操作的符号。Java运算符号包括:数学运算符、关系运算符、逻辑运算符、赋值运算符号、字符串连接运算符。计算机本质上只能处理数字,处理数字的最常见的方式就…

java学习part15单例模式

107-面向对象(高级)-单例设计模式与main()的理解_哔哩哔哩_bilibili 1.单例 就是说在某些开发场景中,某个类只要有一个对象就足够使用了,不需要重复创建。 (理解:比如说是数据库对象,使用时创建一个可以处理所有的数…

虹科干货 | 适用于基于FPGA的网络设备的IEEE 1588透明时钟架构

导读:在基于FPGA的网络设备中,精确的时间同步至关重要。IEEE 1588标准定义的精确时间协议(PTP)为网络中的设备提供了纳秒级的时间同步。本文将介绍虹科提供的适用于基于FPGA的网络设备的IEEE 1588透明时钟(TC&#xff…

电机伺服驱动学习笔记(6)PID算法

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、连续PID二、参数整定1.一般调节法 工具提示参考文献 前言 提示:本文是根据野火科技电机系列教学视频PID算法的通俗解说和参数整定视频课章节整…

C#文件夹基本操作(判断文件夹是否存在、创建文件夹、移动文件夹、删除文件夹以及遍历文件夹中的文件)

目录 一、判断文件夹是否存在 1.Directory类的Exists()方法 2. DirectoryInfo类的Exists属性 二、创建文件夹 1. Directory类的CreateDirectory()方法 2.DirectoryInfo类的Create()方法 三、移动文件夹 1. Directory类的Move()方法 2.DirectoryInfo类的MoveT…