当前位置: 首页 > news >正文

Python从入门到精通秘籍九

一、Python中文件编码概念

在Python中,文件编码指的是将文本内容转换为字节序列的过程。不同的编码方式使用不同的字符集和字节表示形式。下面是一个示例代码:

# 写入文本到文件
text = "你好,世界!"
with open("file.txt", "w", encoding="utf-8") as file:file.write(text)# 从文件读取文本
with open("file.txt", "r", encoding="utf-8") as file:content = file.read()print(content)  # 输出:你好,世界!

在上面的示例中,我们使用UTF-8编码来处理文本文件。在写入文件时,我们指定了编码参数encoding="utf-8",确保将文本正确地转换为字节序列并写入文件。在读取文件时,我们同样指定了相同的编码参数,以正确地将字节序列解码为文本。

常见的文件编码方式还包括ASCII、UTF-16、GBK等。在选择文件编码时,需要根据具体情况来确定。一般来说,UTF-8是一种通用的、可扩展的编码方式,对于多语言环境下的文本处理较为适用。

有时候,可能会遇到文件的编码不被正确识别的问题。可以尝试使用其他编码方式进行尝试,或者使用errors="replace"参数来忽略无法解码的部分,并替换为特定的占位符。

总之,文件编码是将文本内容转换为字节序列的过程,选择适当的编码方式可以确保正确地读写文本文件。

二、Python中文件的读取操作

在Python中,我们可以使用内置的open函数来打开文件,并使用不同的模式进行读取操作。下面是一个示例代码:

# 打开文件并读取全部内容
with open("file.txt", "r") as file:content = file.read()print(content)# 逐行读取文件内容
with open("file.txt", "r") as file:lines = file.readlines()for line in lines:print(line)# 使用迭代器逐行读取文件内容
with open("file.txt", "r") as file:for line in file:print(line)

在上面的示例中,我们以只读模式(“r”)打开名为"file.txt"的文件。

第一个示例通过read方法读取整个文件内容,并将其存储在变量content中。然后,我们可以使用print语句打印文件的全部内容。

第二个示例通过readlines方法逐行读取文件内容,并将每一行作为字符串存储在列表lines中。我们可以使用for循环遍历lines列表,并打印每一行的内容。

第三个示例展示了更加简洁的方式,直接使用文件对象进行迭代。这种方式可以逐行读取文件内容,每次迭代返回一行数据。

需要注意的是,在使用完文件之后,应该及时关闭文件。在上面的示例中,我们使用了with语句来自动管理文件的打开和关闭操作。当with代码块执行结束时,文件会自动关闭。

总之,通过使用open函数和不同的读取模式,我们可以灵活地读取文件内容。可以一次性读取整个文件内容,或者逐行读取文件内容,具体取决于我们的需求。

三、Python中文件的写出操作

在Python中,我们可以使用内置的open函数来打开文件,并使用不同的模式进行写入操作。下面是一个示例代码:

# 写入文本到文件
text = "Hello, World!"
with open("file.txt", "w") as file:file.write(text)# 追加文本到文件
append_text = "This is appended text."
with open("file.txt", "a") as file:file.write("\n")  # 写入换行符file.write(append_text)

在上面的示例中,我们首先使用写入模式(“w”)以只写方式打开名为"file.txt"的文件。

通过write方法,我们将字符串text写入文件中。如果文件已经存在,这将覆盖原有内容;如果文件不存在,则会创建新文件并写入内容。

接着,我们使用追加模式(“a”)以只追加方式打开同一文件。通过write方法,我们在文件末尾写入了换行符和另一段文本append_text

需要注意的是,在使用完文件之后,应该及时关闭文件。在上面的示例中,我们使用了with语句来自动管理文件的打开和关闭操作。当with代码块执行结束时,文件会自动关闭。

总之,通过使用open函数和不同的写入模式,我们可以灵活地写入文件内容。可以覆盖原有内容,也可以在文件末尾追加内容,具体取决于我们的需求。

四、Python中文件的追加写入操作

当我们需要向一个已经存在的文件中追加内容时,可以使用文件打开模式"a"来实现。下面是一个示例代码:

# 追加文本到文件
append_text = "This is appended text."
with open("file.txt", "a") as file:file.write(append_text + "\n")

在上面的示例中,我们以追加模式("a")打开名为"file.txt"的文件。

通过write方法,我们将字符串append_text写入文件末尾,同时添加换行符\n以确保新内容与原有内容分隔开。

需要注意的是,在使用完文件之后,应该及时关闭文件。在上面的示例中,我们使用了with语句来自动管理文件的打开和关闭操作。当with代码块执行结束时,文件会自动关闭。

通过使用追加模式打开文件,我们可以将新内容添加到已有文件的末尾,而不会覆盖原有内容。这对于日志文件、记录文件等需要增量写入的场景非常有用。

五、Python中文件操作的综合案例

下面是一个综合案例,演示了如何使用Python进行文件操作,包括读取文件内容、处理数据,并将结果写入到新文件中。

# 读取文件并处理数据
with open("input.txt", "r") as file:lines = file.readlines()processed_lines = []
for line in lines:# 处理每一行数据processed_line = line.upper().strip()processed_lines.append(processed_line)# 将处理后的数据写入新文件
with open("output.txt", "w") as file:for line in processed_lines:file.write(line + "\n")

在上面的示例中,我们假设有一个名为"input.txt"的文本文件,其中包含多行数据。首先,我们以只读模式("r")打开该文件,并逐行读取文件内容。将每一行存储在列表lines中。

然后,我们对每一行数据进行处理。在这个案例中,我们将每一行转换为大写字母形式,并去除首尾的空白字符。处理后的每一行存储在列表processed_lines中。

最后,我们以写入模式("w")打开名为"output.txt"的新文件。通过遍历processed_lines列表,将每一行数据写入新文件。每写入一行后,我们加上换行符\n以确保每行数据独立。

通过这个综合案例,我们展示了读取文件、处理数据,并将结果写入到新文件中的完整过程。这种文件操作方式在实际开发中经常被用到,可以依据具体需求进行修改和扩展。

相关文章:

Python从入门到精通秘籍九

一、Python中文件编码概念 在Python中,文件编码指的是将文本内容转换为字节序列的过程。不同的编码方式使用不同的字符集和字节表示形式。下面是一个示例代码: # 写入文本到文件 text "你好,世界!" with open("…...

善于利用window挂在全局变量

开发过程成中遇到一个奇怪的问题,打开一个echats图表之后,关闭echarts图再进入其他页面页面会报错提示 $(...).draggble not a function经过一步步定位,发现echats图是通过后端获取js、css文件然后在本地绘制而成。而获…...

《C缺陷和陷阱》-笔记(5)

目录 一、整数溢出 溢出 如何防止溢出 二、为函数main提供返回值 连接 一、什么是连接器 连接器工作原理 三、声明与定义 四、命名冲突与static 修饰符 statia 一、整数溢出 溢出 C语言中存在两类整数算术运算,有符号运算与无符号运算。 在无…...

【数字图像处理matlab系列】保存图像

【数字图像处理系列】保存图像imwrite函数 使用函数imwrite可以将图像保存到本地上,该函数的语法为 imwrite(image_data, filename)其中,image_data是要写入的图像数据,可以是一个矩阵或一个三维数组(对于彩色图像),filename是要写入的文件名,可以包含路径信息。例如,…...

八股文三(Spring、Spring Cloud Alibaba)

Spring篇 什么是Spring Spring是个轻量级的框架,他有两大内核分别是IOC、AOPIOC是什么 * 依赖注入和控制反转,它是一种思想,创建对象不是直接new出来,而是交给IOC容器,由容器去创建进行管理,这就是控制反…...

一文带你详解天池工业数据集

人工智能是国家战略性新兴产业,制造业是国民经济的主体,随着人口红利的消失,加强设备自动化改造,提高生产自动化程度,减小劳动强度,改善作业环境,已经成为制造业的普遍共识。天池大赛开放出一批…...

08 龙芯平台openstack部署搭建-neutron-controller部署

一、创建neutron相关数据库、服务凭证和API端点 1.创建neutron数据库,授予合适的访问权限 mysql -uroot -ploongson -e “CREATE DATABASE neutron;” mysql -uroot -ploongson -e “GRANT ALL PRIVILEGES ON neutron.* TO ‘neutron’‘localhost’ IDENTIFIED B…...

JAVA 100道题(6)

6.创建一个表示矩形的类,包括宽度和高度属性,以及计算面积和周长的方法。 下面是一个简单的Python类,表示矩形,包含宽度和高度属性,以及计算面积和周长的方法: python复制代码 class Rectangle: def __ini…...

Leetcode面试经典150题

数组字符串 合并两个有序数组 思路 类似于归并排序,对两个有序数组进行合并即可,但是空间复杂度是O(nm); 代码 class Solution {public void merge(int[] nums1, int m, int[] nums2, int n) {int[] ans new int[n m];int i 0, j 0;int cnt 0;…...

王者荣耀使用的UDP通信,十几年编程没用过的协议

缘起 最近在查阅moba相关的资料时,看到了一篇王者荣耀的研发同学的技术分享,从文章中了解到王者荣耀的通信方式是UDP通信,回想到整个职业生涯,貌似并没有用过,今天特地整理下。 udp技术细节 udp协议 UDP协议叫做用…...

HiveQL详解

文章目录 前言一、数据定义语言(DDL)1. 数据库操作1.1 创建数据库1.2 删除数据库1.3 更改数据库1.4 使用数据库 2. 连接器操作2.1 创建连接器2.2 删除连接器2.3 修改连接器 3. 表操作3.1 创建表3.1.1 内部表与外部表3.1.1.1 内部表3.1.1.2 外部表3.1.1.3…...

Linux/Bizness

Enumeration nmap 用 nmap 扫描了常见的端口,发现对外开放了22,80,443 ┌──(kali㉿kali)-[~] └─$ nmap 10.10.11.252 Starting Nmap 7.93 ( https://nmap.org ) at 2024-03-08 01:21 EST Nmap scan report for 10.10.11.252 Host is up (0.36s latency). Not…...

mysql 数据库 增删改查 基本操作

目录 一 SQL 详细介绍 (一)SQL 分类 (二) SQL 语言规范 (三)数据库对象和命名 1,数据库的组件(对象): 2,命名规则: (四) SQL…...

计算机网络——物理层(编码与调制)

计算机网络——编码与调制 基带信号和宽带信号编码与调制数字数据编码为数字信号非归零编码归零编码反向不归零编码曼彻斯特编码差分曼彻斯特编码4B/5B编码 数字数据调制为模拟信号模拟数据编码为数字信号模拟数据调制为模拟信号 我们之前讲了物理层的一些基础知识和两个准则&a…...

PHP魔术方法详解

__construct() 构造函数用于初始化新创建的对象。PHP 5 之后不推荐使用类名作为构造函数。 class Person {public $name;public $age;public function __construct($name, $age) {$this->name $name;$this->age $age;} }$person new Person("Alice", 30);…...

游戏 AI 反作弊|内附解决方案详情!

我们提出使用在游戏中广泛存在的回放日志数据,重构出玩家当局的表现。在回放 日志数据中,我们构建了玩家的时序行为数据,并基于该时序行为数据,分别搭建 了透视和自瞄外挂检测系统,该方法和系统可广泛应用于各种在线…...

elementUI组件库样式修改整理

一、整体修改样式注意点 避免!important,能使用深度选择器就用深度选择器主题色使用变量,方便后期统一修改,最好新建一个单独的文件,专门用于定义公共变量样式文件尽量放在一个文件里,方便后期维护 二、单独element …...

还是了解下吧,大语言模型调研汇总

大语言模型调研汇总 一. Basic Language ModelT5GPT-3LaMDAJurassic-1MT-NLGGopherChinchillaPaLMU-PaLMOPTLLaMABLOOMGLM-130BERNIE 3.0 Titan 二. Instruction-Finetuned Language ModelT0FLANFlan-LMBLOOMZ & mT0GPT-3.5ChatGPTGPT-4AlpacaChatGLMERNIE BotBard 自从Cha…...

Win11初始化系统遇一文解决

这个是目录 一、设置内的初始化无法使用时,使用以下工具二、将桌面移动到D盘三、解决win11桌面右键创建只有一个带盾牌的文件夹问题四、win11 系统停止更新五、office安装1、使用的是 Office Tool plus2、使用WPS 六、D盘有感叹号七、打开组策略编辑器(gpedit.msc)失…...

vr虚拟现实游戏世界介绍|数字文化展览|VR元宇宙文旅

虚拟现实(VR)游戏世界是一种通过虚拟现实技术创建的沉浸式游戏体验,玩家可以穿上VR头显,仿佛置身于游戏中的虚拟世界中。这种技术让玩家能够全方位、身临其境地体验游戏,与游戏中的环境、角色和物体互动。 在虚拟现实游…...

微信小程序之bind和catch

这两个呢,都是绑定事件用的,具体使用有些小区别。 官方文档: 事件冒泡处理不同 bind:绑定的事件会向上冒泡,即触发当前组件的事件后,还会继续触发父组件的相同事件。例如,有一个子视图绑定了b…...

Go 语言接口详解

Go 语言接口详解 核心概念 接口定义 在 Go 语言中,接口是一种抽象类型,它定义了一组方法的集合: // 定义接口 type Shape interface {Area() float64Perimeter() float64 } 接口实现 Go 接口的实现是隐式的: // 矩形结构体…...

Objective-C常用命名规范总结

【OC】常用命名规范总结 文章目录 【OC】常用命名规范总结1.类名(Class Name)2.协议名(Protocol Name)3.方法名(Method Name)4.属性名(Property Name)5.局部变量/实例变量(Local / Instance Variables&…...

电脑插入多块移动硬盘后经常出现卡顿和蓝屏

当电脑在插入多块移动硬盘后频繁出现卡顿和蓝屏问题时,可能涉及硬件资源冲突、驱动兼容性、供电不足或系统设置等多方面原因。以下是逐步排查和解决方案: 1. 检查电源供电问题 问题原因:多块移动硬盘同时运行可能导致USB接口供电不足&#x…...

oracle与MySQL数据库之间数据同步的技术要点

Oracle与MySQL数据库之间的数据同步是一个涉及多个技术要点的复杂任务。由于Oracle和MySQL的架构差异,它们的数据同步要求既要保持数据的准确性和一致性,又要处理好性能问题。以下是一些主要的技术要点: 数据结构差异 数据类型差异&#xff…...

反射获取方法和属性

Java反射获取方法 在Java中,反射(Reflection)是一种强大的机制,允许程序在运行时访问和操作类的内部属性和方法。通过反射,可以动态地创建对象、调用方法、改变属性值,这在很多Java框架中如Spring和Hiberna…...

是否存在路径(FIFOBB算法)

题目描述 一个具有 n 个顶点e条边的无向图,该图顶点的编号依次为0到n-1且不存在顶点与自身相连的边。请使用FIFOBB算法编写程序,确定是否存在从顶点 source到顶点 destination的路径。 输入 第一行两个整数,分别表示n 和 e 的值(1…...

Element Plus 表单(el-form)中关于正整数输入的校验规则

目录 1 单个正整数输入1.1 模板1.2 校验规则 2 两个正整数输入&#xff08;联动&#xff09;2.1 模板2.2 校验规则2.3 CSS 1 单个正整数输入 1.1 模板 <el-formref"formRef":model"formData":rules"formRules"label-width"150px"…...

Yolov8 目标检测蒸馏学习记录

yolov8系列模型蒸馏基本流程&#xff0c;代码下载&#xff1a;这里本人提交了一个demo:djdll/Yolov8_Distillation: Yolov8轻量化_蒸馏代码实现 在轻量化模型设计中&#xff0c;**知识蒸馏&#xff08;Knowledge Distillation&#xff09;**被广泛应用&#xff0c;作为提升模型…...

springboot整合VUE之在线教育管理系统简介

可以学习到的技能 学会常用技术栈的使用 独立开发项目 学会前端的开发流程 学会后端的开发流程 学会数据库的设计 学会前后端接口调用方式 学会多模块之间的关联 学会数据的处理 适用人群 在校学生&#xff0c;小白用户&#xff0c;想学习知识的 有点基础&#xff0c;想要通过项…...