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

Python基础——文件操作

编程过程中总免不了需要对各种文件进行读与写,这篇文章主要总结对文件的常用操作,以备以后不时之需。

1、读文件 

1.1、读文本文件

# 1.打开文件
file_object = open('info.txt', mode='rt', encoding='utf-8')# 2.读取文件内容,并赋值给data
data = file_object.read()# 3.关闭文件
file_object.close()print(data)

1.2 、读图片等非文本内容文件

file_object = open('a1.png', mode='rb')
data = file_object.read()
file_object.close()print(data) # \x91\xf6\xf2\x83\x8aQFfv\x8b7\xcc\xed\xc3}\x7fT\x9d{.3.\xf1{\xe8\...

注意事项:

读文件时,文件不存在程序会报错。 (解决方法可以加判断)

# 判断路径是否存在?
import osfile_path = "E:\Pycharm_Project\lufeixuecheng\files"
exists = os.path.exists(file_path)
if exists:# 1.打开文件file_object = open('infower.txt', mode='rt', encoding='utf-8')# 2.读取文件内容,并赋值给datadata = file_object.read()# 3.关闭文件file_object.close()print(data)
else:print("文件不存在")

2、写文件

2.1、写文本文件

# 1.打开文件
# 路径:info.txt
# 模式:wb(要求写入的内容需要是字节类型)
file_object = open("info.txt", mode='wb')# 2.写入内容
file_object.write("HQSS".encode("utf-8"))# 3.文件关闭
file_object.close()# 1.打开文件
# 路径:info.txt
# 模式:wb(要求写入的内容需要是字符类型)
file_object = open("info.txt", mode='wt', encoding='utf-8')
# 2.写入内容
file_object.write("武沛齐")
# 3.文件关闭
file_object.close()

2.2、写图片等文件

f1 = open('hqss0.png',mode='rb')
content = f1.read()
f1.close()f2 = open('hqss1.png',mode='wb')
f2.write(content)
f2.close()

注意事项:

  • 路径

    • 绝对路径

    • 相对路径

  • 文件不存在时,w模式会新建然后再写入内容;文件存在时,w模式会清空文件再写入内容。

3、文件打开模式

上文基于文件操作基本实现了读、写的功能,其中涉及的文件操作模式:rt、rb、wt、wb,其实在文件操作中还有其他的很多模式。

关于文件的打开模式常见应用有:

  • 只读:rrtrb (用)

    • 存在,读

    • 不存在,报错

  • 只写:wwtwb(用)

    • 存在,清空再写

    • 不存在,创建再写

  • 只写:xxtxb

    • 存在,报错

    • 不存在,创建再写。

  • 只写:aatab【尾部追加】(用)

    • 存在,尾部追加。

    • 不存在,创建再写。

  • 读写

    • r+、rt+、rb+,默认光标位置:起始位置

    • w+、wt+、wb+,默认光标位置:起始位置(清空文件)

    • x+、xt+、xb+,默认光标位置:起始位置(新文件)

    • a+、at+、ab+,默认光标位置:末尾

4、常见功能

在上述对文件的操作中,只使用了write和read来对文件进行读写,其实在文件操作中还有很多其他的功能来辅助实现更好的读写文件的内容。

4.1、read,读

读所有【常用】

f = open('info.txt', mode='r',encoding='utf-8')
data = f.read()
f.close()f = open('info.txt', mode='rb')
data = f.read()
f.close()

读n个字符(字节)【会用到】

f = open('info.txt', mode='r', encoding='utf-8')
# 读1个字符
data = f.read(1)
f.close()
print(data) #f = open('info.txt', mode='rb')
# 读1个字节
data = f.read(3)
f.close()
print(data, type(data)) 

readline,读一行

f = open('info.txt', mode='r', encoding='utf-8')
v1 = f.readline()
print(v1)
f.close()f = open('info.txt', mode='r', encoding='utf-8')
v2 = f.readline()
print(v2)
f.close()

readlines,读所有行,每行作为列表的一个元素

f = open('info.txt', mode='rb')
data_list = f.readlines()
f.close()
print(data_list)

循环,读大文件(readline加强版)【常见】

f = open('info.txt', mode='r', encoding='utf-8')
for line in f:print(line.strip())
f.close()

4.2、write,写

f = open('info.txt', mode='a',encoding='utf-8')
f.write("华青水上")
f.close()f = open('info.txt', mode='ab')
f.write( "华青水上".encode("utf-8") )
f.close()

4.3、flush,刷到硬盘

f = open('info.txt', mode='a',encoding='utf-8')while True:# 不是写到了硬盘,而是写在缓冲区,系统会将缓冲区的内容刷到硬盘。f.write("华青水上")f.flush()f.close()

4.4、移动光标位置(字节)

f = open('info.txt', mode='r+', encoding='utf-8')# 移动到指定字节的位置
f.seek(3)
f.write("华青水上")f.close()

注意:在a模式下,调用write在文件中写入内容时,永远只能将内容写入到尾部,不会写到光标的位置。

4.5、获取当前光标位置

f = open('info.txt', mode='r', encoding='utf-8')
p1 = f.tell()
print(p1)  # 0
f.read(3)  # 读3个字符 3*3=9字节
p2 = f.tell()
print(p2)  # 9
f.close()f = open('info.txt', mode='rb')
p1 = f.tell()
print(p1)  # 0
f.read(3)  # 读3个字节
p2 = f.tell()
print(p2)  # 3
f.close()

5、上下文管理

之前对文件进行操作时,每次都要打开和关闭文件,比较繁琐且容易忘记关闭文件。

以后再进行文件操作时,推荐大家使用with上下文管理,它可以自动实现关闭文件。

with open("info.txt", mode='rb') as file_object:data = file_object.read()print(data)

在Python 2.7 后,with又支持同时对多个文件的上下文进行管理,即:

with open("xxxx.txt", mode='rb') as f1, open("xxxx.txt", mode='rb') as f2:pass

至此,关于文件的基本操作总结完毕,有不当的地方,欢迎大家批评指正。

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

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

教你怎么才能删除百度负面新闻

互联网技术有时是一把双刃刀,我们可以运用它来对企业品牌形象、商品、知名品牌等开展宣传推广,殊不知竞争者亦能够运用它来对公司开展故意污蔑来减少敌人在制造行业里的权重值和权威性,进而给消费者行为引入一些对公司欠佳的信息内容&#xf…...

c++程序设计中虚基类,多继承知识点

一.前言 如上 二.题目 分别声明Teacher(教师)类和Cadre(干部)类,采用多重继承方式由这两个类派 生出新类Teacher_Cadre(教师兼干部)类。要求: (1)在两个基类中都包含姓名、年龄、性别、地址、电话等数据成员。 (2&a…...

FFmpeg:avcodec_encode_video()

本文简单分析FFmpeg的avcodec_encode_video2()函数。该函数用于编码一帧视频数据。avcodec_encode_video2()函数的声明位于libavcodec\avcodec.h,如下所示。 /*** Encode a frame of video.** Takes input raw video data from frame and writes the next output p…...

SpringBoot中必须掌握的45个注解

1.SpringBoot/spring SpringBootApplication: 包含Configuration、EnableAutoConfiguration、ComponentScan通常用在主类上; Repository: 用于标注数据访问组件,即DAO组件; Service: 用于标注业务层组件; RestController: …...

侯捷CPP---面向对象(上)

侯捷CPP---面向对象(上)前言头文件防卫式声明class 分类不带指针的class(complex)成员变量私有化inline function(内联函数)构造函数常量成员函数参数传递返回值传递友元函数操作符重载临时对象带指针的cla…...

使用注解开发

1; 2.mapper 2.测试...

苏宁易购启动六一宝宝节,首提“共情消费”

5月26日晚8点,苏宁易购六一宝宝节掰头大会在多个平台播出。六一宝宝节全面启动。 六一宝宝节定位于打破营销套路,打破传统电商促销节奏。它是大促,更是一场成年人释放压力、共情消费的盛典。 掰头大会灵魂辩题 开启宝宝节 六一宝宝节的启…...

设计一个windows应用程序,定义一个Student类,包含学号和姓名两个字段,并定义一个班级类ClassList

设计一个windows应用程序,定义一个Student类,包含学号和姓名两个字段,并定义一个班级类ClassList,该类包含一个Student集合,使用索引器访问该集合。 (1)创建一个Windows应用程序Myproject6_1。 …...

HTML表单标签,已拿offer附真题解析

前言 校招 -1 年 这个阶段还属于成长期,更需要看重的是你的基础和热情。对于 JS 基础,计算机基础,网络通信,算法等部分的要求会相对高一些。毕竟这个阶段比较难考察你的业务项目中的沉淀,所以只能从基础部分入手考察。…...

python笔记19年8月23日

-------------py打包exe教程------------ 准备好需要转换的py文件和一张用于做图标.ico的照片 将他们存放于同一个文件夹中,文件的路径全部为英文路径 1.利用cmd窗口安装pyinstaller插件 指令 :pip install pyinstaller 2.使用cd指令到py文件夹 3.执行命令 pyinstaller -F -i X…...

系统集成模拟3-55分

1、合同法律关系是指由合同法律法规调整的在民事流转过程中形成的(权利义务关系) 2、当已经采取了多种沟通方式还未能与用户达成一致时,应考虑沟通升级原则-双方高层沟通 3、数据域安全包括:行级数据域安全,数据域安全…...

Centos7 配置DHCP

实验内容及步骤 1、实验背景 某企业计划构建一台 DHCP服务器来解决IP地址动态分配的问题,要求能够分配 IP地址以及网关、DNS等其它网络属性信息。同时要求DHCP服务器为DNS、WEB、Samba服务器分配固定IP 地址。 2、网络拓扑 略. 3、实验环境 假设企业DHCP服务器…...

JVM常见配置汇总

堆设置 -Xms:初始堆大小-Xmx:最大堆大小-XX:NewSizen:设置年轻代大小-XX:NewRation:设置年轻代和年老代的比值。如:为3,表示年轻代与年老代比值为1:3,年轻代占整个年轻代年老代和的1/4-XX:SurvivorRation:年轻代中Eden区与两个Survivor区的比…...

从类,API,框架三个层面学习如何设计可复用软件实体的具体技术学习心得

从类,API,框架三个层面学习如何设计可复用软件实体的具体技术学习心得软件复用概述软件复用概念软件复用的软件支持三方面讲述软件复用类代码复用设计的复用分析的复用测试信息的复用Liskov替换原则 ——LSPAPI框架软件复用概述 软件复用概念 软件复用(…...

惠普(HP) Officejet Pro 8610商用彩色喷墨一体机

专业彩色打印件的单页成本比激光打印机低 50%,从而在日常打印中节省更多打印成本。无论您身在何处,均可通过任意移动设备进行打印。 借助惠普“云打印”技术,您现在可以随时随地,随心打印。使用智能复印解决方案,创建完美无瑕的副本,同时轻松打印双面身份证。专业彩色打印…...

easyPOI和导入复杂excel的各种坑

//easyPOI的依赖 <dependency><groupId>cn.afterturn</groupId><artifactId>easypoi-base</artifactId><version>4.1.3</version> </dependency>//要操作pdf,word还是用原生poi比较好 <dependency><groupId>org.…...

用直流电机测转速——测速发电机标定实验

测速发电机标定实验 文章目录测速发电机标定实验1 测速发电机原理和应用1.1 原理1.2 应用2 硬件搭建3 实验数据4 总结1 测速发电机原理和应用 1.1 原理 直流电机同时也是一个发电机。也就是说&#xff0c;当直流电机被通入直流电的时候&#xff0c;会将电能转化为机械能&…...

httprunner_locust_场景1:登录1次,添加10次地图

场景1&#xff1a;任务执行 > login执行1次&#xff0c;addtitle执行10次 from locust import HttpUser, task, SequentialTaskSet, between import json# 场景1&#xff1a;任务执行 > login执行1次&#xff0c;addtitle执行10次 class FlashTask(SequentialTaskSet): …...

Actor模型

传统的游戏服务器要么是单线程要么是多线程&#xff0c;过去几十年里CPU一直遵循摩尔定律发展&#xff0c;带来的结果是单核频率越来越高。而近几年摩尔定义在CPU上已然失效&#xff0c;为什么呢&#xff1f; 大于在2003年左右&#xff0c;计算机的核心特性经历了一个重要的变…...

冠美会计

...

LAMP源码编译安装(Apache,Mysql,PHP,论坛安装详解)

目录前言一.LAMP概述1.LAMP架构2.LAMP组件的主要作用二.Apache httpd服务编译安装1.关闭防火墙&#xff0c;将安装Apache所需软件包传到/opt目录下2.安装环境依赖包3.配置软件模块4.编译及安装5.优化配置文件路径&#xff0c;并把httpd服务的可执行程序文件放入路径环境变量的目…...

2021年危险化学品经营单位安全管理人员考试APP及危险化学品经营单位安全管理人员证考试

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 危险化学品经营单位安全管理人员考试APP是安全生产模拟考试一点通总题库中随机出的一套危险化学品经营单位安全管理人员证考试&#xff0c;在公众号安全生产模拟考试一点通上点击危险化学品经营单位安全管理人员作业手…...

mac下多个安装php版本并切换的方法

brew install php-version 一般总是失败&#xff0c;直接从git上clone下来使用了。 https://github.com/wilmoore/php-version/wiki/Troubleshooting#gathering-debug-info 进入你要放置php-version的目录。 git clone https://github.com/wilmoore/php-version.git source…...

可视化笔记-ECharts

文章目录一、ECharts官网二、使用步骤三、ECharts案例(一)、直接基于假数据绘制条形图1.创建pyCharm项目2.在项目里面添加Echarts和jQuery3.创建一个页面&#xff0c;demo01.html四、课堂练习绘制男女人数条形图一、ECharts官网 http://echarts.apache.org/zh/ 二、使用步骤 …...

vue+flv.js+SpringBoot+websocket实现视频监控与回放

vueflv.jsSpringBootwebsocket实现视频监控与回放 需求:vuespringboot的项目,需要在页面展示出海康的硬盘录像机连接的摄像头的实时监控画面以及回放功能. 之前项目里是纯前端实现视频监控和回放功能.但是有局限性.就是ip地址必须固定.新的需求里设备ip不固定.所以必须换一种…...

paraview使用说明书

paraview tutorial&#xff1a;The ParaView Tutorial - KitwarePublic 1.简介 大多数人与ParaView相关联的应用程序实际上只是一个小的客户端应用程序&#xff0c;它构建在一堆库之上&#xff0c;这些库为ParaView提供了它的功能。 由于ParaView的绝大多数功能都是在库中实…...

MySQL基础面试题(2021年六月面试记录)

文章目录MySQL存储引擎MyISAM和InnoDB区别索引事务的实现原理并发事务带来哪些问题?不可重复读和幻读区别事务的隔离级别MyISAM和InnoDB存储引擎使用的锁表级锁和行级锁的对比InnoDB存储引擎的锁的算法MySQL中的varchar和char有什么区别B树索引、哈希索引、B树的区别drop、del…...

MD5加密工具类

依赖 <dependency><groupId>org.apache.shiro</groupId><artifactId>shiro-core</artifactId><version>1.7.1</version></dependency>md5加密工具类 package com.fsx.shiro.utils;import org.apache.shiro.crypto.hash.Md5H…...

Appium安装及环境部署

依赖&#xff1a;JDK环境 Android SDK Node.js python环境 第一步&#xff1a;安装node.js 地址&#xff1a;https://nodejs.org/ 这里安装没有技巧&#xff0c;无脑下一步就行&#xff08; 注意安装路径是自己的预期就行&#xff09; 这边建议把你的安装路径放在系统变量…...

安装好的matlab如何添加额外的工具箱Toolbox

最最简单的办法&#xff1a;就是通过MATLAB自己的附加功能里面去找&#xff0c;然后安装。 可能你会说要正版才可以&#xff0c;我不知道自己是不是正版&#xff0c;反正我是破解的那种&#xff0c;然后在官网下载额外的toolbox其实不需要你是否有正版授权&#xff0c;只要有一…...

Scroll zkEvm技术设计全面思考

目录 前言 背景 在 zk-Rollup 中构建通用 DApp 在 zk-Rollup 中构建通用 DApp 有两种方式。 zkEVM 的设计挑战<...

网际风全推数据接口_网际风接口软件

网际风接口软件(分类&#xff1a;股票软件下载)网际风接口软件数据处理高效流畅&#xff0c;功能设计强大实用&#xff0c;用户体验尽善尽美&#xff0c;成本控制灵活多样&#xff0c;是以用户体验为中心的炒股软件&#xff0c;支持丰富多彩功能插件。网际风接口软件支持分析家…...

【金融人士工具大全】整理不易,且珍惜

金融行业需要的搜索工具&#xff0c;这一篇文章就够了&#xff01;赶紧偷偷收藏起来&#xff0c;不要让你的同事看到 本文分为三大板块&#xff1a;数据篇、租赁行业必备APP篇、尽职调查篇。 废话不多说&#xff0c;干货直接送上&#xff01; 一、数据篇 良好的信息资料搜集能…...

【一周头条盘点】中国软件网(2018.12.24~2018.12.28)

每一个企业级应用的人都置顶了中国软件网中国软件网为你带来最新鲜的行业干货一周热点网信办&#xff1a;金融信息服务提供者不得散布虚假金融信息近日&#xff0c;国家网信办发布金融信息服务管理规定&#xff0c;规定明确&#xff0c;金融信息服务提供者不得制作、复制、发布…...

硬核|定时任务的10种实现方案,满足你的不同需求!

最近有几个读者私信给我&#xff0c;问我他们的业务场景&#xff0c;要用什么样的定时任务。确实&#xff0c;在不用的业务场景下要用不同的定时任务&#xff0c;其实我们的选择还是挺多的。我今天给大家总结10种非常实用的定时任务&#xff0c;总有一种是适合你的。一. linux自…...

CloudOS应用场景|构建云原生PaaS平台

云原生PaaS平台也是PaaS开发平台&#xff0c;是一种把应用服务的运行和开发环境作为服务的商业模式&#xff0c;也就是我们常说的平台即服务。 构建云原生PaaS平台有哪些难点 第一、容器技术的选择&#xff1a;容器技术是整个平台的基石&#xff0c;犹如开发web需要选择开发语…...

荣耀鸿蒙os2.0报名入口,鸿蒙公测第二期报名入口 鸿蒙os2.0系统官网申请地址

鸿蒙系统一直以来就备受大家的关注&#xff0c;近期鸿蒙2.0公测第二期报名又开启了&#xff0c;这次也增加了六款nova机型哦&#xff0c;那么第二期公测在哪报名呢&#xff0c;接下来跟着小编看看具体的介绍吧。鸿蒙公测第二期报名入口报名时间&#xff1a;4月9日 15:00开始即可…...

鸿蒙系统官网内测手机型号,华为鸿蒙系统支持的手机型号 鸿蒙OS 2.0支持机型名单...

对于鸿蒙OS和Android/iOS之间的区别是很多人好奇的&#xff0c;华为鸿蒙已经很多人升级体验了&#xff0c;并不是所有机型都能升级&#xff0c;那么&#xff0c;华为鸿蒙OS 2.0支持哪些机型&#xff1f;下面小编就带来介绍。华为鸿蒙OS 2.0支持哪些机型现在已经有人收到了华为H…...

融易投3周年庆——欢乐送豪礼

尊敬的融易投用户&#xff1a; 时光如梭&#xff0c;一转眼&#xff0c;融易投已走过三个春夏秋冬&#xff1b; 岁月如歌&#xff0c;三年了&#xff0c;感谢您一直陪伴融易投身边。 为感恩回馈大家一路的支持&#xff0c;融易投3周年庆系列活动即将开幕。 现将预热篇活动抢先奉…...

邮储融易商城——基本功能预览(asp.net)

金院梦之队 1. 总体概述 本网站仅为第七届全国大学生网络商务创新应用大赛制作。 第一次制作&#xff0c;因经验不足&#xff0c;时间仓促&#xff0c;不足之处&#xff0c;敬请指正。 本次复赛期间&#xff0c;我们团队将主要的精力集中于网站制作&#xff0c;即初赛方案中…...

华为手机上取消html默认,手机教程知识:华为手机设置默认浏览器的操作流程...

在生活和工作中&#xff0c;电脑和手机已成为不可或缺的必备工具&#xff0c;关于电脑和手机上的一些程序很多小伙伴经常都会遇到一些疑难杂症&#xff0c;关于大家提到的关于华为手机设置默认浏览器的操作流程这方面的问题&#xff0c;小编整理了一些相关的讯息。华为手机是华…...

计算机与手机联网,电脑怎么通过手机共享上网(两种手机和电脑连接上网方法)...

电脑也可以连接上手机&#xff0c;通过手机移动高速网络上网吗&#xff1f;没错&#xff0c;电脑和手机相互绑定上网是安卓手机的一个内置的功能&#xff0c;虽然大多情况下并不实用(手机流量套餐太贵了)&#xff0c;但是对于某些人可能会很有用的&#xff0c;比如要办公编辑一…...

android手机解除root,手机一键ROOT以后如何解除?手机root后怎么恢复

手机一键ROOT以后如何解除&#xff1f;手机root后怎么恢复&#xff1f;很多人都在寻找root方法&#xff0c;殊不知root还可以恢复。很多小伙伴获取root权限后&#xff0c;使用一段时间&#xff0c;新鲜感一过就开始怀念原来的系统&#xff0c;或是想要升级&#xff0c;这时候怎…...

android手机连接hdmi,手机hdmi转接线的介绍以及连接方法

手机的功能有很多&#xff0c;能够满足大部分用户的日常使用需求&#xff0c;但是由于手机屏幕大小的局限性&#xff0c;因此我们可能就不能够在多人环境下将自己的手机中的内容展示给别人。针对这个问题&#xff0c;今天小编为大家带来的内容就是关于将手机与电视相连接以达到…...

android一键换手机,不同品牌手机一键换机:换新手机怎么转移数据?

我们正处于一个数码产品更新换代非常快速的时代&#xff0c;很多消费者会紧跟时代潮流&#xff0c;经常更换新手机&#xff0c;但是更换手机之后我们通常需要将旧手机里的数据进行转移&#xff0c;不同品牌之间的手机怎么进行一键换机呢&#xff1f;以安卓手机更换苹果手机转移…...

手机版h5城市选择

1. 效果图 2. 下载地址 链接: http://download.csdn.net/download/yuzhiqiang_1/10026485...

如何利用智慧社区的优势来创建解决方案

如何利用智慧社区的优势来创建解决方案 说起智慧社区&#xff0c;可能大家第一反应会想到的智能小区吧。而智能小区管家中的智慧物业&#xff0c;就是利用大数据、互联网等先进的技术手段&#xff0c;通过统一的大数据平台将物业与各个单位紧密相连&#xff0c;并实现物业单位…...

华为手机如何连接到电脑

第一种方式&#xff1a; 知识点分析: Huawei Share是华为手机上的一项技术&#xff0c;支持此功能的手机可以通过此功能把手机上的内容共享至电脑。 操作步骤:测试环境&#xff1a;荣耀Note10&#xff08;系统版本&#xff1a;9.0.0.192&#xff09;&#xff1b;ThinkPad T590笔…...

利用基站定位手机

利用基站定位手机 在手机拨号键盘处输入以下各机型对应的命令&#xff0c;点拨号&#xff0c;然后选择 “手机信息”&#xff0c;能查看手机的如基站CELLID&#xff0c;LAC等GSM信息。通过基站的CELLID&#xff0c;附近CELLID、LAC、信号强度等信息反查推算就能精确到十几米级地…...

手机怎么打开f12_手机App调试(Android)

方法一&#xff1a; 用Chrome手机来调试。1) 在PC上安装谷歌的USB驱动&#xff1a;http://developer.android.com/sdk/win-usb.html#top2) 在手机上打开Developer开关3) 在手机上运行app (用IONIC或PhoneGap跨平台方案开发的。 需要是开发版&#xff0c; 不能是release版)( 确…...