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

Python文件

一、文件的基本概念

1.1 文件类型

文件类型主要分为文本文件和二进制文件。文本文件是由一组特定编码的字符构成的文件,可以由某种文本编辑器对内容进行识别、处理、修改等操作。二进制文件由二进制数“0”和“1”构成,没有统一的字符编码,因此只能以字节流方式打开。

1.2 文本的打开和关闭

文本的打开用open()函数,关闭用close()函数。

Python语言中,在操作文件之前,需要打开文件,结束之后需要关闭文件,这样才能释放与文件绑定的资源。在打开文件时可以指定打开文件模式,如下时open()语句的基本语法格式。

<变量名> = open(文件名,[打开模式])

open()函数打开文件的模式
模式含义
r以只读方式打开文件,为默认模式
w打开一个文件写入。文件不存在时,则创建文件;否则覆盖文件
x创建文件。如果文件存在,则抛出异常
a追加写入模式。文件不存在时,则创建文件;否则追加内容
t文本文件模式,为默认模式
b二进制文件
+打开文件进行更新

1.3 文本读取

1.3.1 read(size)

读取文本的方法有很多,例如read(size)方法从文件中根据size读取指定个数的字符。

从结果来看只有1、2、3三个字符,其实还有换行两个字符。

1.3.2 tell()

当读取文件时,程序访问第一个字符是起始位置,读取到某一位置,指针就指向相应位置。tell()方法可以返回当前指针位置。

1.3.3 seek()

f.seek()方法可以控制指针所在位置。seek()方法含有两个参数,其基本语法格式如下。

f.seek(<偏移量>[,起始位置])

其中起始位置为“0”表示从文件头开始,为“1”表示从当前指针开始,为“2”表示从文件末尾开始。

偏移量表示从起始位置移动的距离,单位是字节。偏移量为正表示向右偏移,为负表示向左偏移。只有以二进制文件模式读取才可以制定不为0的起始位置。

从这个例子可以知道,f.read(4)读取了前4个字符,f.read(6)读取的是后6个字符,这是因为程序读取文件时地址是f.read(4)后面。

1.3.4 readline([size])

如果读取的文件有多行,也可以通过readline()方法读取文件内容。其基本语法格式如下。

f.readline([size])

无参数size时,可以使用该方法读取文件的某一行内容,遇到换行符停止读取:有参数size时,将读入当前指针位置后size长度的字符串或字节流。

f.readline(6)读取第一行,f.readline(4)读取第二行。

1.3.5 readlines()

readlines()读文件中所有内容,读取结果将以列表形式给出,每行内容为一个列表元素。

1.4 文件写入

write()方法执行写入操作,可以用'w'——覆盖;'a'——追加;'x'——创建文件读取文件。

1.4.1 覆盖写入:w

1.4.2 追加写入:a

1.4.3 创建写入:x

二、数据维度

数据维度可以分为一维数据、二维数据和高维数据。

2.1 一维数据

一维数据只有一个维度,没有添加其他属性,通常用于表示一组相关联的数据。一维数据由具有对等关系的有序或无序数据构成,采用线性方式组织。例如,一个含有姓名的列表或集合。

对于Python中的一维数据,通常使用列表或文件对其进行表示,分隔方式有以下3种。

(1)空格分隔

使用一个或多个空格进行不同数据的分隔。

苹果 香蕉 番茄 西瓜

(2)逗号分隔

使用逗号对不同数据进行分隔

苹果,香蕉,番茄,西瓜

(3)其他符号

使用其他符号,如美元符号、分号或换行符等,分隔数据。

苹果

香蕉

番茄

西瓜

一维数据和二维数据通常使用逗号分隔值数据存储格式,以“.csv"为扩展名,数据直接用逗号隔开。

可以在循环每一行内容时使用replace()方法去掉每行结尾的换行符,例如先使用Line = line.replace("\n",""),再调用append()方法。

2.2 二维数据

二维数据由多个一维数据构成,可以看作一维数据的组合形式。

读取csv文件,输出内容

三、处理文件的异常

3.1 try-finally

try-finally语句捕获和处理此类异常,从而增加程序的安全性。

3.2 try-except

try-except方法捕获对应类型异常,并进行相应处理

相关文章:

Python文件

一、文件的基本概念 1.1 文件类型 文件类型主要分为文本文件和二进制文件。文本文件是由一组特定编码的字符构成的文件&#xff0c;可以由某种文本编辑器对内容进行识别、处理、修改等操作。二进制文件由二进制数“0”和“1”构成&#xff0c;没有统一的字符编码&#xff0c;…...

超越标注:合成数据引领下的文本嵌入技术革新

论文:https://arxiv.org/pdf/2401.00368代码:https://github.com/microsoft/unilm/tree/master/e5机构:微软领域:嵌入模型发表:BAAI 2024这篇论文的标题是《Improving Text Embeddings with Large Language Models》,由微软公司的Liang Wang, Nan Yang, Xiaolong Huang, …...

IT运维中,如何快速进行故障排查?(以银行APP交易故障为例)

一、事件背景 正值"五一"黄金周旅游高峰期&#xff0c;某城商行的手机APP突然出现大面积交易失败和严重卡顿现象。据初步统计&#xff0c;从上午10点开始APP的交易成功率从正常的99%骤降至75%左右&#xff0c;用户反馈的交易失败投诉量在短短2小时内激增了500%。与此…...

入门mem0.NET

入门mem0.NET 安装包 如果你的项目使用了EntityFrameworkCore,那么你可以跟随这个教程走 <ItemGroup><PackageReference Include"mem0.NET" Version"0.1.7" /><PackageReference Include"mem0.NET.Qdrant" Version"0.1.7…...

虚拟机(CentOS7)安装jenkins

centos7安装jenkins 前提条件&#xff0c;安装jdk与maven 1、JDK17安装 # 进入系统管理员 sudo root # 进入对应文件夹下 cd /usr/local # 下载jdk17 wget https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.rpm # rpm命令安装下载的jdk17 rpm -ivh jdk-17_li…...

尚品汇-首页三级分类实现-nginx静态代理生成的静态页面(二十六)

目录&#xff1a; &#xff08;1&#xff09;问题详解 &#xff08;2&#xff09;首页商品分类实现 &#xff08;3&#xff09;修改web-all模块 &#xff08;4&#xff09;页面渲染 &#xff08;1&#xff09;问题详解 &#xff08;2&#xff09;首页商品分类实现 前面做了…...

对象存储及其相关概念介绍

对象存储是一种用来描述解决和处理离散单元&#xff08;这些离散单元被称作为对象&#xff09;的方法的通用术语。以下是关于对象存储的详细解析&#xff1a; 一、基本概念 定义&#xff1a;对象存储&#xff0c;也叫做基于对象的存储&#xff0c;是一种将数据以对象的形式进…...

TypeScript 研发系列

#TypeScript 编写HTML 游戏...

三维世界,一图打尽!Matplotlib带你玩转3D绘图,让数据跳舞的魔法棒!

1. 引言 嘿&#xff0c;亲爱的数据探险家们&#xff01;你们是否曾梦想过&#xff0c;在二维的屏幕上&#xff0c;让数据跳出束缚&#xff0c;翩翩起舞&#xff0c;展现它那迷人的三维身姿&#xff1f;今天&#xff0c;就让我这位自封的‘数据魔术师’&#xff0c;带你解锁Mat…...

计算机常识与NOIP历史-CSP初赛知识点整理

真题练习 [2021-CSP-J-第2题] 以下奖项与计算机领域最相关的是&#xff08; &#xff09;。 A.奥斯卡奖 B.图灵奖 C.诺贝尔奖 D.普利策奖 [2017-NOIP-第7题] 中国计算机学会于( )年创办全国青少年计算机程序设计竞赛。 A. 1983 B. 1984 C. 1985 D. 1986 [2018-NOIP-第5题…...

代码随想录算法训练营第二天 | 209. 长度最小的子数组、59. 螺旋矩阵 II

目录 209. 长度最小的子数组1、题目描述2、思路3、code4、复杂度分析 LC59 螺旋矩阵 II1、题目描述2、思路3、code4、复杂度分析 209. 长度最小的子数组 题目链接&#xff1a;209 1、题目描述 给定一个含有 n 个正整数的数组和一个正整数 target 。找出该数组中满足其总和大于…...

鼻咽癌综述

小罗碎碎念 本期推文主题&#xff1a;鼻咽癌综述 这篇文章提供了一个全面的综述&#xff0c;探讨了鼻咽癌&#xff08;NPC&#xff09;的关键研究进展&#xff0c;包括病理机制、治疗、筛查和生物标志物的发展。 文章首先强调了NPC在特定地理区域的流行情况&#xff0c;并讨论了…...

中国AI PC行业研究报告

核心摘要&#xff1a; 2020-2023年中国笔电出货量呈下降趋势&#xff0c;PC厂商亟需从产品形态、软硬技术、需求场景等角度寻求新的增长机会。而随着大模型、生成式AI技术的到来&#xff0c;其强大的数据处理、学习泛化与内容生成能力&#xff0c;高质效加速了各行各业人工智能…...

Mybatis实战:图书管理系统(笔记)

前言&#xff1a;如果在接口的声明方法中鼠标右键没有Test的单元测试。 你的鼠标光标问题&#xff1a;要在花括号范围内&#xff01;&#xff01;&#xff01;&#xff01; 数据库表是应⽤程序开发中的⼀个重要环节, 数据库表的设计往往会决定我们的应⽤需求是否能顺利实现, 甚…...

win11 amd64 python安装matplotlib、pytorch报错记录

win11 amd64 python matplotlib 安装报错记录 安装时 错误是 metadata-generation-failed 查看上面的具体报错原因&#xff0c;来自&#xff1a; Files\Python\Python3_10_11\Include: linker input file not found: No such file or director注意Python 的路径中最好不要有…...

Python写UI自动化--playwright(等待页面加载机制)

很多情况下&#xff0c;我们都需要等待页面加载到一定程度才能进行下一步操作&#xff0c;而这个度该怎么操作&#xff0c;这篇文章就来详细讲一讲 目录 expect_popup() wait_until参数 "load" commit: "domcontentloaded" "networkidle"…...

书籍将整数字符串转成整数值(5)0804

题目 给定一个字符串str&#xff0c;如果str符合日常书写的整数形式&#xff0c;并且属于32位整数的范围&#xff0c;返回str所代表的整数值&#xff0c;否则返回0。 举例 str“123” 返回 123 str“023” 因为023 不符合日常的书写习惯&#xff0c;所以返回0 str“A13” …...

【2024年华数杯C题老外游中国】(完整题解+代码+完整参考论文)

请问 352 个城市中所有 35200 个景点评分的最高分&#xff08;Best Score&#xff0c;简称 BS&#xff09;是多少&#xff1f;全国有多少个景点获评了这个最高评分&#xff08;BS&#xff09;&#xff1f;获评了这个最高评分&#xff08;BS&#xff09;景点最多的城市有哪些&am…...

全球氢化双酚A (HBPA)市场规划预测:2030年市场规模将接近1330亿元,未来六年CAGR为2.7%

一、引言 随着全球化工行业的持续发展&#xff0c;氢化双酚A (HBPA)作为重要的化工原料&#xff0c;其市场重要性日益凸显。本文旨在探索HBPA行业的发展趋势、潜在商机及其未来展望。 二、市场趋势 全球HBPA市场的增长主要受全球化工行业增加、消费者对高性能化工产品要求提高…...

【C++】异常处理:深度解析与实战精髓,不容错过的编程秘籍

&#x1f308; 个人主页&#xff1a;Zfox_ &#x1f525; 系列专栏&#xff1a;C从入门到精通 目录 &#x1f680; 前言&#xff1a;C语言传统的处理错误的方式 一&#xff1a; &#x1f525; C异常概念二&#xff1a; &#x1f525; 异常的使用 2.1 &#x1f4d6; 异常的抛出和…...

智能指针的循环引用 是什么 怎么引起的

智能指针的循环引用 是什么 怎么引起的 智能指针的循环引用&#xff08;Circular Reference&#xff09;是指两个或多个对象之间的共享指针相互引用&#xff0c;导致这些对象永远不会被释放&#xff0c;从而引发内存泄露。主要发生在使用std::shared_ptr时&#xff0c;因为它们…...

Stegdetect教程:如何用Stegdetect检测和破解JPG图像隐写信息

一、Stegdetect简介 Stegdetect 是一个开源工具&#xff0c;专门设计用于检测图像文件&#xff08;JPG格式&#xff09;中的隐写信息。Stegdetect 可以检测多种常见的隐写方法&#xff0c;比如 JSteg、JPHide 和 OutGuess 等。 二、使用Stegdetect检测图像隐写 官方描述&#…...

Co-Detr

参考&#xff1a;https://www.bilibili.com/video/BV1Sh4y1F7ur/?spm_id_from333.788&vd_source156234c72054035c149dcb072202e6be 之前的detr正样本数量少&#xff0c;匹配不平衡。 主要修改两个地方&#xff1a;encoder和decoder。 1.在encoder之后加入RPN&#xff0c;a…...

校园选课助手【1】-项目整体架构从此开始

项目背景 随着高校招生规模的不断扩大&#xff0c;学生选课需求日益增长。为提高选课效率&#xff0c;降低学生选课压力&#xff0c;本项目旨在开发一款校园选课助手软件。 项目目标:开发一款具有以下特点的校园选课助手软件&#xff1a; 易用性&#xff1a;界面简洁&#xff…...

椭圆曲线加法运算

1. 定义 椭圆曲线 (Elliptic Curve) 不是函数&#xff0c;而是一条平面曲线&#xff0c;其方程是定义如下&#xff1a; y 2 x 3 a x b y^2x^3axb y2x3axb 其中&#xff0c;判别式 Δ − 16 ( 4 a 3 27 b 2 ) ≠ 0 \Delta -16(4a^327b^2)\neq 0 Δ−16(4a327b2)0。判别…...

(STM32笔记)九、RCC时钟树与时钟 第一部分

我用的是正点的STM32F103来进行学习&#xff0c;板子和教程是野火的指南者。 之后的这个系列笔记开头未标明的话&#xff0c;用的也是这个板子和教程。 九、RCC时钟树与时钟 九、RCC时钟树与时钟1、时钟树HSE时钟HSI时钟锁相环时钟系统时钟HCLK时钟PCLK1时钟PCLK2时钟RTC时钟独…...

fastjson-流程分析

参考视频&#xff1a;fasfjson反序列化漏洞1-流程分析 分析版本 fastjson1.2.24 JDK 8u65 分析过程 新建Person类 public class Person {private String name;private int age;public Person() {System.out.println("constructor_0");}public Person(String na…...

Linux 命令安装

系列文章目录 提示&#xff1a;仅用于个人学习&#xff0c;进行查漏补缺使用。 1.Linux介绍、目录结构、文件基本属性、Shell 2.Linux常用命令 3.Linux文件管理 4.Linux 命令安装 提示&#xff1a;写完文章后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助…...

清华和字节联合推出的视频理解大模型video-SALMONN(ICML 2024)

video-SALMONN: Speech-Enhanced Audio-Visual Large Language Models 论文信息 paper&#xff1a;https://arxiv.org/abs/2406.15704 code&#xff1a;https://github.com/bytedance/SALMONN/ AI也会「刷抖音」&#xff01;清华领衔发布短视频全模态理解新模型 | ICML 2024 …...

从数据爬取到可视化展示:Flask框架与ECharts深度解析

目录 &#x1f539; Flask框架源码解析 Flask应用初始化路由与视图函数请求与响应中间件 &#x1f539; ECharts可视化精讲 ECharts安装与配置基本图表类型图表样式与交互高级图表配置与数据动态更新实战&#xff1a;结合Flask与ECharts展示爬取数据 Flask框架源码解析 &…...