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

【知识点】第7章:文件和数据格式化

文章目录

  • 知识点整理
    • 文件概述
    • 文件的打开和关闭
    • 文件的读操作
    • 文件的写操作
  • 练习题
    • 填空题
    • 选择题​​

知识点整理

文件概述

文件是一个存储在辅助存储器上的数据序列,可以包含任何数据内容。概念上,文件是数据的集合和抽象,类似地,函数是程序的集合和抽象。用文件形式组织和表达数据更有效也更为灵活。文件包括两种类型:文本文件和二进制文件

  • 文本文件一般由单一特定编码的字符组成,如UTF-8编码,内容容易统一展示和阅读。大部分文本文件都可以通过文本编辑软件或文字处理软件创建、修改和阅读。由于文本文件存在编码,因此,它也可以被看作是存储在磁盘上的长字符串,例如一个txt格式的文本文件。
  • 二进制文件直接由比特0和比特1组成,没有统一字符编码,文件内部数据的组织格式与文件用途有关。二进制是信息按照非字符但特定格式形成的文件,例如,png格式的图片文件、avi格式的视频文件。二进制文件由于没有统一字符编码,只能当作字节流,而不能看作是字符串。

二进制文件和文本文件最主要的区别在于是否有统一的字符编码。无论文件是创建为文本文件还是二进制文件,都可以用“文本文件方式”和“二进制文件方式”打开,但打开后的操作不同。

文件的打开和关闭

Python对文本文件和二进制文件采用统一的操作步骤,即 “打开一操作一关闭”

Python通过解释器内置的 open() 函数打开一个文件,并实现该文件与一个程序变量的关联。open()函数有两个参数:文件名和打开模式。文件名可以是文件的实际名字,也可以是包含完整路径的名字。打开模式用于控制使用何种方式打开文件,open()函数提供 7 种基本的打开模式。

在这里插入图片描述

在这里插入图片描述

上述打开模式中,“r”、“w”、“x”、“a"可以和"b”、“t”、"+"组合使用,形成既表达读写又表达文件模式的方式。

文件使用结束后要用close()方法关闭,释放文件的使用授权,该方法的使用方式如下:

在这里插入图片描述

文件的读操作

  • 当文件以文本文件方式打开时,读写按照字符串方式,采用计算机使用的编码或指定编码。
  • 当文件以二进制文件方式打开时,读写按照字节流方式。

在这里插入图片描述

例题:文本文件逐行打印。

用户输入文件路径,以文本文件方式读入文件内容并逐行打印。

在这里插入图片描述

程序首先提示用户输入一个文件名,然后打开文件并赋值给文件对象变量fo。文件的全部内容通过fo.readlines()方法读入到一个列表中,列表的每个元素是文件一行的内容,然后通过for-in方式遍历列表,处理每行内容。

文件的写操作

Python提供3个与文件内容写入有关的方法。
在这里插入图片描述


练习题

填空题

  1. 文件包括两种类型:______ 和 _______。(文本文件,二进制文件)

选择题​​

1.​​Python中用于打开文件的内置函数是?​​
A. fopen
B. open
C. file_open
D. read_file
​​答案:B​​
​​解析​​:Python使用open()函数打开文件。
​​
2.以只读方式打开文件的模式是?​​
A. ‘w’
B. ‘r’
C. ‘a’
D. ‘rb’
​​答案:B​​
​​解析​​:'r’是默认的只读模式。

3.​​以下哪个方法用于写入文件内容?​​
A. read()
B. write()
C. readline()
D. readlines()
​​答案:B​​
​​解析​​:write()是写入方法。

相关文章:

【知识点】第7章:文件和数据格式化

文章目录 知识点整理文件概述文件的打开和关闭文件的读操作文件的写操作 练习题填空题选择题​​ 知识点整理 文件概述 文件是一个存储在辅助存储器上的数据序列,可以包含任何数据内容。概念上,文件是数据的集合和抽象,类似地,函…...

NetSuite Bundle - Dashboard Refresh

儿童节快乐! 今朝发一个Bundle,解决一个NetSuite Dashboard的老问题。出于性能上的考虑,NetSuite的Dashboard中的Portlet,只能逐一手工刷新。有人基于浏览器做了插件,可以进行自动刷新。但是在我们做项目部署时&#…...

AI+3D 视觉重塑塑料袋拆垛新范式:迁移科技解锁工业自动化新高度

在工业自动化浪潮席卷全球的当下,仓储物流环节的效率与精准度成为企业降本增效的关键战场。其中,塑料袋拆垛作为高频、高重复性的作业场景,传统人工或机械臂操作面临着诸多挑战。迁移科技,作为行业领先的 3D 工业相机和 3D 视觉系…...

智慧赋能:移动充电桩的能源供给革命与便捷服务升级

在城市化进程加速与新能源汽车普及的双重推动下,移动充电桩正成为能源供给领域的一场革命。传统固定充电设施受限于布局与效率,难以满足用户即时、灵活的充电需求,而移动充电桩通过技术创新与服务升级,打破了时空壁垒,…...

【项目实践】SMBMS(Javaweb版)(三)登出、注册、注销、修改

文章目录 登出、注册、注销、修改登出操作的实现逻辑及方式防止用户登出后可以继续访问修改密码功能实现导入jsp实现Dao层数据接口实现Service层业务接口注册Servlet 注册和注销 用户的方式导入jsp实现Dao层的数据逻辑实现Service逻辑注册Servlet 登出、注册、注销、修改 登出…...

斐波那契数列------矩阵幂法

斐波那契数列 斐波拉楔数是我们在学递归的使用看到的题目,但递归法是比较慢的,后面我们用循环递进来写的,但今天我有遇到了新的方法—— 矩阵幂法(线性代数的知识点)。 矩阵幂法: F11*F10*F2; F20*F11*…...

【Go语言基础【四】】局部变量、全局变量、形式参数

文章目录 一、一句话总结二、作用域分类1. 局部变量(函数内/块内变量)1.1、语法说明1.2、示例 2. 全局变量(包级变量)2.1、语法说明2.2、示例:全局变量的访问 3. 形式参数(函数参数) 三、作用域…...

DeepSeek 赋能车路协同:智能交通的破局与重构

目录 一、引言二、智能交通车路协同系统概述2.1 系统定义与原理2.2 系统构成2.3 发展现状与挑战 三、DeepSeek 技术剖析3.1 DeepSeek 简介3.2 核心技术原理3.2.1 Transformer 架构3.2.2 混合专家架构(MoE)3.2.3 多头潜在注意力(MLA&#xff0…...

RabbitMQ 的异步化、解耦和流量削峰三大核心机制

RabbitMQ 的异步化、解耦和流量削峰三大核心机制 RabbitMQ 是解决数据库高并发问题的利器,通过异步化、解耦和流量削峰三大核心机制保护数据库。下面从设计思想到具体实现,深入剖析 RabbitMQ 应对高并发的完整方案: 一、数据库高并发核心痛点…...

Ubuntu 25.10 将默认使用 sudo-rs

非盈利组织 Trifecta Tech Foundation 报告,Ubuntu 25.10 将默认使用它开发的 sudo-rs——用内存安全语言 Rust 开发的 sudo 实现。 Ubuntu 25.10 代号 Questing Quokka,预计将于 2025 年 10 月释出,是一个短期支持版本。Sudo-rs 是 Trifect…...

Maven​​ 和 ​​Gradle​​ 依赖管理的详细说明及示例,涵盖核心概念、配置方法、常见问题解决和工具对比。

一、Maven 依赖管理 1. 核心概念 ​​依赖声明​​&#xff1a;在 pom.xml 中通过 <dependency> 标签定义依赖项&#xff0c;包含 groupId、artifactId、version。​​仓库​​&#xff1a;依赖下载的来源&#xff0c;包括中央仓库&#xff08;Maven Central&#xff0…...

【Web应用】若依框架:基础篇21二次开发-页面调整

文章目录 ⭐前言⭐一、课程讲解⭐二、怎样选择设计模式&#xff1f;&#x1f31f;1、寻找合适的对象✨1) ⭐三、怎样使用设计模式&#xff1f;&#x1f31f;1、寻找合适的对象✨1) ⭐总结 标题详情作者JosieBook头衔CSDN博客专家资格、阿里云社区专家博主、软件设计工程师博客内…...

【 java 基础知识 第一篇 】

目录 1.概念 1.1.java的特定有哪些&#xff1f; 1.2.java有哪些优势哪些劣势&#xff1f; 1.3.java为什么可以跨平台&#xff1f; 1.4JVM,JDK,JRE它们有什么区别&#xff1f; 1.5.编译型语言与解释型语言的区别&#xff1f; 2.数据类型 2.1.long与int类型可以互转吗&…...

CVE-2020-17518源码分析与漏洞复现(Flink 路径遍历)

漏洞概述 漏洞名称&#xff1a;Apache Flink REST API 任意文件上传漏洞 漏洞编号&#xff1a;CVE-2020-17518 CVSS 评分&#xff1a;7.5 影响版本&#xff1a;Apache Flink 1.5.1 - 1.11.2 修复版本&#xff1a;≥ 1.11.3 或 ≥ 1.12.0 漏洞类型&#xff1a;路径遍历导致的任…...

Excel表格批量下载 CyberWin Excel Doenlaoder 智能编程-——玄武芯辰

使用 CyberWin Excel Downloader 进行 Excel 表格及各种文档的批量下载&#xff0c;优势显著。它能大幅节省时间&#xff0c;一次性获取大量所需文档&#xff0c;无需逐个手动下载&#xff0c;提升工作效率。可确保数据完整性与准确性&#xff0c;避免因重复操作产生失误。还便…...

可编辑PPT | 基于大数据中台新能源智能汽车应用解决方案汽车大数据分析与应用解决方案

这份文档是一份关于新能源智能汽车应用解决方案的详细资料&#xff0c;它深入探讨了智能汽车行业的发展趋势&#xff0c;指出汽车正从单纯交通工具转变为网络入口和智能设备&#xff0c;强调了车联网、自动驾驶、智能娱乐等技术的重要性。文档提出了一个基于大数据中台的车企数…...

【统计方法】基础分类器: logistic, knn, svm, lda

均方误差&#xff08;MSE&#xff09;理解与分解 在监督学习中&#xff0c;均方误差衡量的是预测值与实际值之间的平均平方差&#xff1a; MSE E [ ( Y − f ^ ( X ) ) 2 ] \text{MSE} \mathbb{E}[(Y - \hat{f}(X))^2] MSEE[(Y−f^​(X))2] MSE 可以分解为三部分&#xff1…...

AtomicInteger原子变量和例题

目录 AtomicInteger源代码加1操作解决ABA问题的AtomicStampedReference 按顺序打印方法 AtomicInteger源代码 // java.util.concurrent.atomic.AtomicIntegerpublic class AtomicInteger extends Number implements java.io.Serializable {private static final long serialVe…...

simulink有无现成模块可以实现将三个分开的输入合并为一个[1*3]的行向量输出?

提问 simulink有无现成模块可以实现将三个分开的输入合并为一个[1*3]的行向量输出&#xff1f; 回答 Simulink 本身没有一个单独的模块能够直接将三个分开的输入合并成一个 [13] 行向量输出&#xff0c;但是可以通过 组合模块实现你要的效果。 ✅ 推荐方式&#xff1a;Mux …...

k8s集群安装坑点汇总

前言 由于使用最新的Rocky9.5,导致kubekey一键安装用不了&#xff0c;退回Rocky8麻烦机器都建好了&#xff0c;决定手动安装k8s&#xff0c;结果手动安装过程中遇到各种坑&#xff0c;这里记录下&#xff1b; k8s安装 k8s具体安装过程可自行搜索&#xff0c;或者deepseek; 也…...

Selenium 和playwright 使用场景优缺点对比

1. 核心对比概览 特性SeleniumPlaywright诞生时间2004年&#xff08;历史悠久&#xff09;2020年&#xff08;微软开发&#xff0c;现代架构&#xff09;浏览器支持所有主流浏览器&#xff08;需驱动&#xff09;Chromium、Firefox、WebKit&#xff08;内置引擎&#xff09;执…...

从 Stdio 到 HTTP SSE,在 APIPark 托管 MCP Server

MCP&#xff08;Model Context Protocol&#xff0c;模型上下文协议&#xff09; 是一种由 Anthropic 公司于 2024 年 11 月推出的开源通信协议&#xff0c;旨在标准化大型语言模型&#xff08;LLM&#xff09;与外部数据源和工具之间的交互。 它通过定义统一的接口和通信规则…...

Python训练营打卡Day43

kaggle找到一个图像数据集&#xff0c;用cnn网络进行训练并且用grad-cam做可视化 进阶&#xff1a;并拆分成多个文件 config.py import os# 基础配置类 class Config:def __init__(self):# Kaggle配置self.kaggle_username "" # Kaggle用户名self.kaggle_key &quo…...

Mysql锁及其分类

目录 InnoDb锁Shared locks(读锁) 和 Exclusive locks(写锁)Exclusive locksShared locks Intention Locks(意向锁)为什么要有意向锁&#xff1f; Record Locks&#xff08;行锁&#xff09;Gap Locks&#xff08;间隙锁&#xff09;Next-Key LocksInsert Intention Locks(插入…...

RabbitMQ实用技巧

RabbitMQ是一个流行的开源消息中间件&#xff0c;广泛用于实现消息传递、任务分发和负载均衡。通过合理使用RabbitMQ的功能&#xff0c;可以显著提升系统的性能、可靠性和可维护性。本文将介绍一些RabbitMQ的实用技巧&#xff0c;包括基础配置、高级功能及常见问题的解决方案。…...

Postgresql源码(146)二进制文件格式分析

相关 Linux函数调用栈的实现原理&#xff08;X86&#xff09; 速查 # 查看elf头 readelf -h bin/postgres# 查看Section readelf -S bin/postgres (gdb) info file (gdb) maint info sections# 查看代码段汇编 disassemble 0x48e980 , 0x48e9b0 disassemble main# 查看代码段某…...

spring ai mcp 和现有业务逻辑如何结合,现有项目用的是spring4.3.7

将 Spring AI 的 MCP&#xff08;Model Context Protocol&#xff09;协议集成到基于 Spring 4.3.7 的现有项目中&#xff0c; 需解决版本兼容性和架构适配问题。 有两种方式&#xff1a;1 mcp tool 封装&#xff0c; 2&#xff1a;如果是微服务&#xff0c;可以用spring ai a…...

【设计模式-4.11】行为型——解释器模式

说明&#xff1a;本文介绍行为型设计模式之一的解释器模式 定义 解释器模式&#xff08;Interpreter Pattern&#xff09;指给定一门语言&#xff0c;定义它的文法的一种表示&#xff0c;并定义一个解释器&#xff0c;该解释器使用该表示来解释语言中的句子。解释器模式是一种…...

【已解决】MACOS M4 芯片使用 Docker Desktop 工具安装 MICROSOFT SQL SERVER

1. 环境准备 确认 Docker Desktop 配置 确保已安装 Docker Desktop for Mac (Apple Silicon)&#xff08;版本 ≥ 4.15.0&#xff09;。开启 Rosetta&#xff08;默认开启&#xff09;&#xff1a; 打开 Docker Desktop → Settings → General → Virtual Machine Options …...

Quipus系统的视频知识库的构建原理及使用

1 原理 VideoRag在LightRag基础上增加了对视频的处理&#xff0c;详细的分析参考LightRag的兄弟项目VideoRag系统分析-CSDN博客。 Quipus的底层的知识库的构建的核心流程与LightRag类似&#xff0c;但在技术栈的选择和处理有所不同。Quipus对于视频的处理实现&#xff0c;与Vi…...