当前位置: 首页 > 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; 异常的抛出和…...

设计模式和设计原则回顾

设计模式和设计原则回顾 23种设计模式是设计原则的完美体现,设计原则设计原则是设计模式的理论基石, 设计模式 在经典的设计模式分类中(如《设计模式:可复用面向对象软件的基础》一书中),总共有23种设计模式,分为三大类: 一、创建型模式(5种) 1. 单例模式(Sing…...

Qt/C++开发监控GB28181系统/取流协议/同时支持udp/tcp被动/tcp主动

一、前言说明 在2011版本的gb28181协议中&#xff0c;拉取视频流只要求udp方式&#xff0c;从2016开始要求新增支持tcp被动和tcp主动两种方式&#xff0c;udp理论上会丢包的&#xff0c;所以实际使用过程可能会出现画面花屏的情况&#xff0c;而tcp肯定不丢包&#xff0c;起码…...

【WiFi帧结构】

文章目录 帧结构MAC头部管理帧 帧结构 Wi-Fi的帧分为三部分组成&#xff1a;MAC头部frame bodyFCS&#xff0c;其中MAC是固定格式的&#xff0c;frame body是可变长度。 MAC头部有frame control&#xff0c;duration&#xff0c;address1&#xff0c;address2&#xff0c;addre…...

k8s从入门到放弃之Ingress七层负载

k8s从入门到放弃之Ingress七层负载 在Kubernetes&#xff08;简称K8s&#xff09;中&#xff0c;Ingress是一个API对象&#xff0c;它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress&#xff0c;你可…...

《基于Apache Flink的流处理》笔记

思维导图 1-3 章 4-7章 8-11 章 参考资料 源码&#xff1a; https://github.com/streaming-with-flink 博客 https://flink.apache.org/bloghttps://www.ververica.com/blog 聚会及会议 https://flink-forward.orghttps://www.meetup.com/topics/apache-flink https://n…...

.Net Framework 4/C# 关键字(非常用,持续更新...)

一、is 关键字 is 关键字用于检查对象是否于给定类型兼容,如果兼容将返回 true,如果不兼容则返回 false,在进行类型转换前,可以先使用 is 关键字判断对象是否与指定类型兼容,如果兼容才进行转换,这样的转换是安全的。 例如有:首先创建一个字符串对象,然后将字符串对象隐…...

代理篇12|深入理解 Vite中的Proxy接口代理配置

在前端开发中,常常会遇到 跨域请求接口 的情况。为了解决这个问题,Vite 和 Webpack 都提供了 proxy 代理功能,用于将本地开发请求转发到后端服务器。 什么是代理(proxy)? 代理是在开发过程中,前端项目通过开发服务器,将指定的请求“转发”到真实的后端服务器,从而绕…...

Reasoning over Uncertain Text by Generative Large Language Models

https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829 1. 概述 文本中的不确定性在许多语境中传达,从日常对话到特定领域的文档(例如医学文档)(Heritage 2013;Landmark、Gulbrandsen 和 Svenevei…...

JS手写代码篇----使用Promise封装AJAX请求

15、使用Promise封装AJAX请求 promise就有reject和resolve了&#xff0c;就不必写成功和失败的回调函数了 const BASEURL ./手写ajax/test.jsonfunction promiseAjax() {return new Promise((resolve, reject) > {const xhr new XMLHttpRequest();xhr.open("get&quo…...

Python+ZeroMQ实战:智能车辆状态监控与模拟模式自动切换

目录 关键点 技术实现1 技术实现2 摘要&#xff1a; 本文将介绍如何利用Python和ZeroMQ消息队列构建一个智能车辆状态监控系统。系统能够根据时间策略自动切换驾驶模式&#xff08;自动驾驶、人工驾驶、远程驾驶、主动安全&#xff09;&#xff0c;并通过实时消息推送更新车…...