文件操作(IO技术,重要!!!)

1、文本文件和二进制文件

按文件中数据组织形式,我们把文件分为文本文件和二进制文件两大类,
1. 文本文件
文本文件存储的是普通“字符”文本,默认为unicode字符集(两个字节表示一个字符,65535),可以使用记事本程序打开。但是,像word文件件编辑的文档不是文本文件,无法使用记事本打开
2. 二进制文件(大多数都是二进制文件
二进制文件把数据内容用“字节”进行存储,无法用记事本打开。必须使用专用的软件解码。常见的有:MP4视频文作、MP3音频文件、JPG图片doC文档等等。

2、文件操作相关模块概述

 

3、打开(创建)文件对象:open()

在 Python 中,可以使用内置的 open() 函数来打开文件。open()`函数接受文件路径和打开模式作为参数,并返回一个文件对象,可以用于读取或写入文件内容。
基本语法格式如下:open(文件名[,打开方式])

如果只是文件名,代表在当前目录下的文件,文件名可以录入全路径,比如:D:\a\b.txt,为了减少“\”的输入,可以使用原始字符串:r"d:\b.txt","w".
示例:f = open(r"d:\b.txt","W")
打开方式如下:

模式描述例如
r只读read模式

open('file.txt', 'r')

read([size]):从文件中读取size个字符,并作为结果返回。如果没有size参数,则读取整个文件,在文件末尾返回空字符串。
readline():读取一行内容作为结果返回,在文件末尾返回空字符串。
readlines():每一行作为一个字符串存入列表中,返回该列表。

w写模式write;文件不存在则创建,文件存在则清空内容open('file.txt', 'w')
a追加模式append;如果文件存在则在文件末尾添加内容,
文件不存在则创建
open('file.txt', 'a')
b二进制binary模式(可与其他模式组合使用)
-读+写;以读写方式打开文件open('file.txt', 'r+')
还可以指定文件的编码格式、处理换行符等参数。
例如,以 UTF-8 编码方式打开文件
open('file.txt', 'r', encoding='utf-8')

关闭文件对象(重要!,一定要有):
在使用完文件后,记得调用文件对象的 close()方法关闭文件,或者使用 with 语句来自动管理文件的打开和关闭:

 示例:

# 打开文件
file_path = 'example.txt'  
# 文件路径,我在测试时随意选取了桌面上的某个文件,使用的绝对路径with open(file_path, 'r') as file:# 读取文件内容content = file.read()print(content)

在这个示例中,`open()`函数以只读模式('r')打开名为`example.txt`的文件,并使用`with`语句来确保文件在使用完毕后被正确关闭。

例如,逐行读取文件内容,可以使用`readline()`方法或者遍历文件对象来一行一行地读取:

with open(file_path, 'r') as file:for line in file:print(line.strip())  # 使用strip()方法去除行尾的换行符

示例:读取一个文件的前4个字符(空格等都算一个字符)

with open(r"xxx","r",encoding="utf-8") as f:
# xxx = 文件路径print(f.read(4))# 读取前4个字符

示例,使用迭代器(每次返回一行)读取文本文件
 

with open(r"XXX","r",encoding="utf-8") as f:for a in f:print(a,end=" ")# 迭代器

在这段代码中,`for a in f:` 这一行实际上是在遍历文件对象 `f`,Python 中的文件对象是可迭代的。在文件对象上进行迭代时,每次迭代会返回文件的一行内容(包括换行符)作为字符串。因此,在这段代码中,变量 `a` 将依次表示文件中的每一行内容(包括换行符),并且通过 `print(a, end=" ")` 打印出来。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/265433.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python|闲谈2048小游戏和数组的旋转及翻转和转置

目录 2048 生成数组 n阶方阵 方阵旋转 顺时针旋转 逆时针旋转 mxn矩阵 矩阵旋转 测试代码 测试结果 翻转和转置 2048 《2048》是一款比较流行​的数字游戏​,最早于2014年3月20日发行。原版2048由Gabriele Cirulli首先在GitHub上发布,后被移…

【MQ05】异常消息处理

异常消息处理 上节课我们已经学习到了消息的持久化和确认相关的内容。但是,光有这些还不行,如果我们的消费者出现问题了,无法确认,或者直接报错产生异常了,这些消息要怎么处理呢?直接丢弃?这就是…

浅谈 Linux 网络编程 - 网络字节序

文章目录 前言核心知识关于 小端法关于 大端法网络字节序的转换 函数 前言 在进行 socket 网络编程时,会用到字节流的转换函数、例如 inet_pton、htons 等,那么为什么要用到这些函数呢,本篇主要就是对这部分进行介绍。 核心知识 重点需要记…

韩国突发:将批准比特币ETF

作者:秦晋 韩国两党宣布将批准比特币ETF。比特币也再次成为竞选的宠儿。 4月10日,韩国将迎来每隔4年而进行的一次立法大选。在大选之前,现执政党与反对党都承诺将批准比特币ETF。 我们知道,比特币的主要受众群体以年轻人居多。此前…

idea打包报错,clean、package报错

一、idea在打包时,点击clean或package报错如下: Error running ie [clean]: No valid Maven installation found. Either set the home directory in the configuration dialog or set the M2_HOME environment variable on your system. 示例图&#xf…

揭示预处理中的秘密!(二)

目录 ​编辑 1. #运算符 2. ##运算符 3. 命名约定 4. #undef 5. 命令行定义 6. 条件编译 7. 头文件的被包含的方式 8.嵌套文件包含 9. 其他预处理指令 10. 完结散花 悟已往之不谏,知来者犹可追 …

androidapp开发语言,已获千赞

初级 初级研发工程师的定义是掌握基础的Android知识,能够独立完成一个功能,工作年限大概在1-2年,这个层级大部分人通过看一些资料书籍再经过项目练习很快可以达到。这个级别的人往往需要掌握如下一些技能: 掌握Android 四大组件…

Nginx网络服务六-----IP透传、调度算法和负载均衡

1.实现反向代理客户端 IP 透传 就是在日志里面加上一个变量 Module ngx_http_proxy_module [rootcentos8 ~]# cat /apps/nginx/conf/conf.d/pc.conf server { listen 80; server_name www.kgc.org; location / { index index.html index.php; root /data/nginx/html/p…

等保2.0高风险项全解析:判定标准与应对方法

引言 所谓高风险项,就是等保测评时可以一票否决的整改项,如果不改,无论你多少分都会被定为不合格。全文共58页,写得比较细了,但是想到大家基本不会有耐心去仔细看的(凭直觉)。这几天挑里边相对…

【大数据】Flink 内存管理(一):设置 Flink 进程内存

《Flink 内存管理》系列(已完结),共包含以下 4 篇文章: Flink 内存管理(一):设置 Flink 进程内存Flink 内存管理(二):JobManager 内存分配(含实际…

智慧校园|智慧校园管理小程序|基于微信小程序的智慧校园管理系统设计与实现(源码+数据库+文档)

智慧校园管理小程序目录 目录 基于微信小程序的智慧校园管理系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、微信小程序前台 2、管理员后台 (1)学生信息管理 (2) 作业信息管理 (3)公告…

shader学习记录——融合、融球效果

融合、融球效果shader,重点在等势面公式上 Shader "Custom/MetaballsShader" {Properties{_MainTex ("Texture", 2D) "white" {}_Color("Color",Color) (1,1,1,1)}SubShader{Tags { "RenderType""Opaque…

什么是去中心化云计算?

去中心化云计算是一种新型的云计算方式,它与传统的中心化云计算不同,将数据和计算任务分布到多个节点上,而不是将数据集中存储在中心服务器上。这种云计算方式具有许多优势,包括提高数据安全性、降低运营成本、增强可扩展性和灵活…

【C语言】学生宿舍信息管理系统

目录 项目说明 1. 数据结构设计 2. 功能实现 3. 主菜单设计 4. 文件操作 5. 系统使用 项目展示 1.主菜单功能界面 ​编辑 2.添加信息 3.查询信息 4.修改信息 5.删除信息 6.退出程序 项目完整代码 结语 在这篇博客中,我们将探讨如何使用C语言来开发…

Java 反射机制

​ 更多内容,前往IT-BLOG ​ 反射Reflection被视为动态语言的关键,反射机制允许程序在执行期间借助于Reflection API取得任何类的内部信息,并能直接操作任意对象的内部属性及方法。反射是一种功能强大且复杂的机制。使用它的主要人员是工具构…

通过QScrollArea寻找最后一个弹簧并且设置弹簧大小

项目原因,最近需要通过QScrollArea寻找其中最后一个弹簧并且设置大小和策略,因为无法直接调用UI指针,所以只能用代码寻找。 直接上代码: if (m_scrollArea){int iScrollWidth m_labelSelectedTitle->width();m_scrollArea-&g…

C语言--- 指针(3)

一.字符指针变量 在指针的类型中&#xff0c;我们知道有一种指针类型为字符指针char * 一般使用&#xff1a; #include<stdio.h> int main() {char ch a;char* p &ch;*p b;printf("%c\n",ch);return 0; } 其实还有一种使用方式 &#xff1a; #inc…

【前端素材】推荐优质后台管理系统Salreo平台模板(附源码)

一、需求分析 当我们从多个层次来详细分析后台管理系统时&#xff0c;可以将其功能和定义进一步细分&#xff0c;以便更好地理解其在不同方面的作用和实际运作。 1. 结构层次 在结构层次上&#xff0c;后台管理系统可以分为以下几个部分&#xff1a; a. 辅助功能模块&#…

2024年2月国内如何快速注册OnlyFans最新小白教学

前言 onlyface软件是一个创立于2016年的订阅式社交媒体平台&#xff0c;创作者可以在自己的账号发布原创的照片或视频&#xff0c;并将其设置成付费模式&#xff0c;若用户想查看则需要每月交费订阅。 需要注意的是&#xff0c;网络上可能存在非法或不道德的应用程序&#xff…

【C++】树形关联式容器set、multiset、map和multimap的介绍与使用

&#x1f440;樊梓慕&#xff1a;个人主页 &#x1f3a5;个人专栏&#xff1a;《C语言》《数据结构》《蓝桥杯试题》《LeetCode刷题笔记》《实训项目》《C》《Linux》《算法》 &#x1f31d;每一个不曾起舞的日子&#xff0c;都是对生命的辜负 目录 前言 1.关联式容器 2.键…