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

椭圆曲线密码学(ECC)

一、ECC算法概述 椭圆曲线密码学&#xff08;Elliptic Curve Cryptography&#xff09;是基于椭圆曲线数学理论的公钥密码系统&#xff0c;由Neal Koblitz和Victor Miller在1985年独立提出。相比RSA&#xff0c;ECC在相同安全强度下密钥更短&#xff08;256位ECC ≈ 3072位RSA…...

Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?

Golang 面试经典题&#xff1a;map 的 key 可以是什么类型&#xff1f;哪些不可以&#xff1f; 在 Golang 的面试中&#xff0c;map 类型的使用是一个常见的考点&#xff0c;其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...

React Native 开发环境搭建(全平台详解)

React Native 开发环境搭建&#xff08;全平台详解&#xff09; 在开始使用 React Native 开发移动应用之前&#xff0c;正确设置开发环境是至关重要的一步。本文将为你提供一份全面的指南&#xff0c;涵盖 macOS 和 Windows 平台的配置步骤&#xff0c;如何在 Android 和 iOS…...

以下是对华为 HarmonyOS NETX 5属性动画(ArkTS)文档的结构化整理,通过层级标题、表格和代码块提升可读性:

一、属性动画概述NETX 作用&#xff1a;实现组件通用属性的渐变过渡效果&#xff0c;提升用户体验。支持属性&#xff1a;width、height、backgroundColor、opacity、scale、rotate、translate等。注意事项&#xff1a; 布局类属性&#xff08;如宽高&#xff09;变化时&#…...

IGP(Interior Gateway Protocol,内部网关协议)

IGP&#xff08;Interior Gateway Protocol&#xff0c;内部网关协议&#xff09; 是一种用于在一个自治系统&#xff08;AS&#xff09;内部传递路由信息的路由协议&#xff0c;主要用于在一个组织或机构的内部网络中决定数据包的最佳路径。与用于自治系统之间通信的 EGP&…...

全球首个30米分辨率湿地数据集(2000—2022)

数据简介 今天我们分享的数据是全球30米分辨率湿地数据集&#xff0c;包含8种湿地亚类&#xff0c;该数据以0.5X0.5的瓦片存储&#xff0c;我们整理了所有属于中国的瓦片名称与其对应省份&#xff0c;方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...

使用 SymPy 进行向量和矩阵的高级操作

在科学计算和工程领域&#xff0c;向量和矩阵操作是解决问题的核心技能之一。Python 的 SymPy 库提供了强大的符号计算功能&#xff0c;能够高效地处理向量和矩阵的各种操作。本文将深入探讨如何使用 SymPy 进行向量和矩阵的创建、合并以及维度拓展等操作&#xff0c;并通过具体…...

Java线上CPU飙高问题排查全指南

一、引言 在Java应用的线上运行环境中&#xff0c;CPU飙高是一个常见且棘手的性能问题。当系统出现CPU飙高时&#xff0c;通常会导致应用响应缓慢&#xff0c;甚至服务不可用&#xff0c;严重影响用户体验和业务运行。因此&#xff0c;掌握一套科学有效的CPU飙高问题排查方法&…...

高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数

高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数 在软件开发中,单例模式(Singleton Pattern)是一种常见的设计模式,确保一个类仅有一个实例,并提供一个全局访问点。在多线程环境下,实现单例模式时需要注意线程安全问题,以防止多个线程同时创建实例,导致…...

力扣热题100 k个一组反转链表题解

题目: 代码: func reverseKGroup(head *ListNode, k int) *ListNode {cur : headfor i : 0; i < k; i {if cur nil {return head}cur cur.Next}newHead : reverse(head, cur)head.Next reverseKGroup(cur, k)return newHead }func reverse(start, end *ListNode) *ListN…...