Python文件的操作处理,一看就会

news2025/2/25 22:21:38

在读取一个文件的内容之前,需要先打开这个文件。在Python程序中可以通过内置函数open()来打开一个文件程序中,并用相关的方法读或写文件文件中的内容以供程序的处理和使用,同时可以将文件看作Python中的一种数据类型。

open(filename, mode=‘r’, buffering=None, encoding=None, errors=None,

 newline=None, closefd=True, opener=None)

open: 打开

      以读的方式:文本的方式, 二进制的方式

      以写的方式:文本的方式,二进制的方式

  写文件的时候:覆盖,追加(两种方式)

当使用上述函数open()打开一个文件后, 就会放回一个文件对象。上述格式中主要参数的具体说明如下所示:

filename:表示要打开的文件名。(路径+文件名)

mode:模式。

buffering:可选参数,缓冲区大小

encoding:文件编码类型。

文本文件才有可能需要编码,二进制文件不需要指定编码 否则会报出异常

errors:编码错误处理方式。

newline:控制通用换行符模式的行为。

closefd:控制在关闭文件时是否彻底关闭文件。

上述格式中,参数“mode”表示文件打开模式。在Python程序中,常用的文件打开模式如下表所示:

图片

下图很好的总结了这几种模式:

在这里插入图片描述

#默认以文本读的方式打开

file_obj = open(“file.txt”, encoding=“utf-8”)

data = file_obj.read()

print(data)

file_obj.close()

file_obj = open(“file.txt”, “rt”, encoding=“utf-8”)

data = file_obj.read()

print(data)

file_obj.close()

file_obj = open(“file.txt”, “w”, encoding=“utf-8”)

data = file_obj.write(“11111111111111111”)

print(data)

file_obj.close()

file_obj = open(“file2.txt”, “w”, encoding=“utf-8”)

data = file_obj.write(“11111111111111111”)

print(data)

file_obj.close()

file_obj = open(“file2.txt”, “a”, encoding=“utf-8”)

data = file_obj.write(“2222222222222”)

print(data)

file_obj.close()

file_obj = open(“file3.txt”, “a+”, encoding=“utf-8”)

file_obj.write(“33333333333333333333333333”)

file_obj.close()

file_obj = open(“file.txt”, encoding=“utf-8”)

data = file_obj.read()

file_obj.close()

二进制的方式(打开):

图片,音频,视频或者其他的非文本的文件

#打开”IO.png“文件,并以二进制的方式读出, b不能单独使用(b前的r不能省略)

file_obj = open(“IO.png”, “rb”)

data = file_obj.read()

print(data)

#关闭文件

file_obj.close()

#以二进制的方式写入文件”psb_copy.jpg“

file_obj = open(“psb_copy.jpg”, “wb”)

file_obj.write(data)

#关闭文件

file_obj.close()

注意:“IO.png”文件中,以存入了一张照片。

02
文件的操作

以文本方式写入的文件, 无需指定编码以二进制方式写入文件,写入的内容要求为bytes,所以通过str.encode(‘utf-8’)来返回 bytes

文件写操作:write()方法

f.write(“hello world”) #向目标文本文 件写入一行字符串

f.write(“hello world”.encode(“utf-8”)) # 向目标二进制文件写入一行字符串

文件写操作:writelines()方法写入文件的字符串序列。

seq = [“hello world 1\n”, “nihao wohao 2”] f.writelines( seq ) 7/15

文件读操作:read()方法从文件读取指定的字节数,如果未给定或为负则读取所有。

ret = f.read() #默认全部读出

ret = f.read(5) #读出指定长度字符

文件读操作:readline()方法可以读出一行数据

ret = f.readline() #读取一行

注意:有个很像的 readlines()方法 ret = f.readlines() #返回的是一个列表,且返回的是你读取的字符所在行的整个内容,但是当数据较大时,这样的用法会很占用内存。

03
使用File操作文件

File对象中的属性信息如下表所示:

图片

在Python程序中,对象File时通过内置函数实现对文件操作的,其中常用的内置函数如下:

图片

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

代码随想录 NO43 | Leetcode_139.单词拆分 1.关于多重背包,你该了解这些! 2. 背包问题总结篇!

leetcode139.单词拆分 多重背包 背包问题总结1. 多重背包2.背包问题简单总结2.1 背包递推公式2.2 遍历顺序2.2.1 01背包2.2.2 完全背包139.单词拆分 给你一个字符串 s 和一个字符串列表 wordDict 作为字典。请你判断是否可以利用字典中出现的单词拼接出 s 。 注意:…

数据分析思维(七)|漏斗思维

漏斗思维 1、概念 漏斗思维的概念比较简单,所谓的漏斗指的就是层层递减的结构,最终组成一个漏斗样式的模型,而递减的状态是多种业务/产品发展的常态,比如一个线下服装门店,进店的人很多(第一层&#xff09…

电子科技大学操作系统期末复习笔记(三):存储器管理

目录 前言 存储器管理 概述 存储管理 存储系统的结构 程序的诞生 空间分类 地址映射 程序链接的方式 静态链接 装入时动态链接 运行时动态链接 程序装入的方式 程序装入的两类三种方法 绝对装入 静态重定位 动态重定位√ 关键点 存储器管理:连续…

C++ 浅谈之二叉搜索树

C 浅谈之二叉搜索树 HELLO,各位博友好,我是阿呆 🙈🙈🙈 这里是 C 浅谈系列,收录在专栏 C 语言中 😜😜😜 本系列阿呆将记录一些 C 语言重要的语法特性 🏃&a…

中小学智慧校园电子班牌系统源码 Saas云平台模式

智慧电子班牌区别于传统电子班牌,智慧校园电子班牌系统更加注重老师和学生的沟通交流和及时数据交互。学校为每个教室配置一台智能电子班牌,一般安装于教室门口,用来实时显示学校通知、班级通知,可设置集中分布式管理,…

Keepalived与HaProxy的协调合作原理分析

Keepalived与HaProxy的协调合作原理分析keepalived与haproxy合作场景更好的理解方式协调合作中考虑的问题一、Keepalived以TCP/IP模型角度来分析:二、HaProxy总结:协调合作中考虑的问题的答案虚拟ip:虚拟IP技术,就是一个未分配给客…

论文笔记:Vision Transformers for Dense Prediction

中文标题: 密集预测的视觉Transformers 创新点 DPT是一种密集预测架构,它基于编码器-解码器的设计,利用一个Transformer作为编码器的基本模块。具体来说,我们使用最近提出的ViT作为主干架构。我们将ViT提供的tokens表示重新组合成不同分辨率…

【人脸识别】Partial-FC:让你在一台机器上训练1000万个id人脸数据集成为可能!

论文题目:”Killing Two Birds with One Stone: Efficient and Robust Training of Face Recognition CNNs by Partial FC“ -CVPR 2022 代码地址:https://arxiv.org/pdf/2203.15565.pdf 代码地址:https://github.com/deepinsight/insightfac…

Maxwell简介、部署、原理和使用介绍

Maxwell简介、部署、原理和使用介绍 1.Maxwell概述简介 1-1.Maxwell简介 ​ Maxwell是由美国Zendesk公司开源,使用Java编写的MySQL变更数据抓取软件。他会实时监控Mysql数据库的数据变更操作(包括insert、update、delete),并将变…

【DockerCE】Docker-CE 23.0.1正式版发布

很意外啊!Docker社区版竟然直接从20.xx.xx版本,升级到23.xx.xx版本了。官网地址(For RHEL/CentOS 7.9):https://download.docker.com/linux/centos/7/x86_64/stable/Packages/23.0.1版本官方安装包如下:# l…

给初级开发人员的建议

#初学者#生产率#代码新手#学习在我超过 15 年的开发生涯中,我学到了一些可以显着提高我的效率的东西。在这篇文章中,我将与您分享这些经验教训。结构:基础建议——以下内容的重要背景和动机技术咨询——主菜推荐读物——指向非常适合入门的高…

30-Golang中的排序和查找

排序和查找排序的基本介绍交换式排序法交换式排序法-冒泡排序查找顺序查找二分查找排序的基本介绍 排序是将一组数据,依指定的顺序进行排列的过程 排序的分类: 1.内部排序:指将需要处理的所有数据都加载到内部存储器中进行排序。包括(交换…

20N65-ASEMI高压MOS管20N65

编辑-Z 20N65在ITO-220AB封装里的静态漏极源导通电阻(RDS(ON))为0.42Ω,是一款N沟道高压MOS管。20N65的最大脉冲正向电流ISM为80A,零栅极电压漏极电流(IDSS)为10uA,其工作时耐温度范围为-55~150摄氏度。20N65功耗&…

Spring Boot最核心的27个注解,你了解多少?

https://blog.csdn.net/ManuMAX/article/details/129017443 导读 Spring Boot方式的项目开发已经逐步成为Java应用开发领域的主流框架,它不仅可以方便地创建生产级的Spring应用程序,还能轻松地通过一些注解配置与目前比较火热的微服务框架SpringCloud集成…

前端学习第一阶段——第五章CSS(下)

5-9 浮动 08-浮动导读 09-传统网页布局三种方式 10-为什么需要浮动 11-什么是浮动 12-浮动特性-脱标 13-浮动特性-浮动元素一行显示 14-浮动特性-浮动元素具有行内块特性 15-浮动元素经常搭配标准流的父元素 16-浮动布局练习1 <!DOCTYPE html> <html lang"en&quo…

从青铜到王者,揭秘 Serverless 自动化函数最佳配置

作者&#xff1a;丛霄 背景介绍 全托管的 Serverless 计算平台能给用户带来更少的运维代价、更强的稳定性和更快的弹性能力。 Serverless 的目标之一是免运维&#xff0c;但仍旧存在一些障碍&#xff0c;在 Serverless 场景特有的一些关键服务配置比如**“并发度”、“最小实…

史上最详细的PyCharm快速上手指南,你值得拥有

上一节中我们介绍了Python并安装了环境&#xff0c;有了Python环境我们就可以开发了吗&#xff1f;各位朋友们。 也可以也不可以&#xff01;哈哈哈不要怪我朋友们&#xff0c;我说的是事实。 如果你喜欢Python自带的Python命令开发&#xff0c;即我们所说的交互式&#xff0…

5.33 综合案例2.0 -ESP32拍照上传阿里云OSS

综合案例2.0 - ESP32拍照上传阿里云OSS案例说明连线功能实现1.阿里云平台连接2.OSS对象存储服务3.ESP32-CAM开发环境4.代码ESP32-CAM开发板代码HaaS506开发板代码测试数据转图片方法案例说明 使用ESP32拍照,将照片数据上传阿里云OSS&#xff08;通过4G网络上传&#xff09;。 …

【ArcGIS Pro二次开发】(4):ArcGIS Pro封装的窗体控件

在ArcGIS Pro&#xff0c;有一类窗体控件是系统已经封装好的&#xff0c;比如消息框、提醒框等。下面通过代码来学习一下。 新建一个项目&#xff0c;命名为【ProWindow】&#xff0c;添加5个按钮&#xff0c;命名为【Show_MessageBox、Show_NoticeBox、Show_OpenDialog、Show…

交通部互通互联码的根证书规则

引言 为了更好的服务交通互通互联码而更新这篇文章。 中金根证书其实是可以自己生成的。 代码内调整 中心公钥索引要保证自己的唯一性。 此处的唯一&#xff0c;是要保证在机具侧的唯一&#xff0c;因为他要根据这个索引去查找证书以及公钥。 提供根公钥给机具侧 生成的公钥…