[Python] 文件

这篇是Python基础语法的一个结尾了,还是可莉跟着大家一起学习哦~

可莉将这篇博客收录在:《Python》

可莉推荐的优质博主主页:Keven ’ s blog

目录

一、文件是什么

二、常用的文件操作函数

1、打开文件

2、关闭文件

3、读取文件

read( )

readline( )

readlines( )

4、写入文件

三、中文文件的处理

四、上下文管理器

可莉的话


一、文件是什么

在计算机系统中,文件是存储在磁盘或其他存储设备上的数据集合。文件可以是文本、图像、音频、视频等各种格式的数据。在Python中,文件被视为一种流式数据源,即数据可以从文件中按顺序读取,也可以写入到文件中。

二、常用的文件操作函数

1、打开文件

open()用来打开文件,例如:

file = open('example.txt', 'r')  # 以只读模式打开文件
  •  第一个参数是一个字符串, 表示要打开的文件路径
  • 第二个参数是一个字符串, 表示打开方式. 其中 r 表示按照读方式打开. w 表示按照写方式打开. a表示追加写方式打开.
  • 如果打开文件成功, 返回一个文件对象. 后续的读写文件操作都是围绕这个文件对象展开.
  • 如果打开文件失败(比如路径指定的文件不存在), 就会抛出异常.

2、关闭文件

用close的方法关闭已打开的文件:

f.close()

因为一个程序能开的文件有限,所以必须对文件在进行使用后进行关闭。

3、读取文件

读文件时需要以 “r” 的方式来打开文件

read( )

用read读文件时( )内的数字表示读几个字符

f = open('d:/test.txt', 'r')
result = f.read(2)
print(result)
f.close()

readline( )

用于读取文件的下一行。你可以多次调用这个方法,直到抛出异常为止,这通常意味着已经到达了

文件的末尾。每次调用readline()都会返回文件的下一行,或者在没有更多行时返回None。如果你

想逐行读取整个文件,可以使用一个循环,如下所示:

with open('file.txt', 'r') as file:while True:line = file.readline()if not line: # 如果读取到了文件的末尾,line将为Nonebreakprint(line, end='') # 打印读取到的行,注意要清除末尾的换行符

readlines( )

将文件的所有剩余行作为一个列表返回。列表中的每一项代表文件的一行。这个方法适合一次性读

取文件的所有内容,然后逐个处理每一行。示例如下:

with open('file.txt', 'r') as file:lines = file.readlines() # 读取文件的所有行到一个列表中for line in lines:print(line, end='') # 打印列表中的每一行

在直接循环打印时会因为print自身默认会添加换行符而且文件自身每行结束会自带换行符而使每一行之间都有两行的间距,所以我们对print的默认值参数进行修改,用end = ' '来使最后一个字符是空格,这样就避免了每两行之间的行距是两行了。

4、写入文件

  • 使用 'w'写文件时一旦打开文件成功, 就会清空文件原有的数据.
  • 使用 'a' 实现 "追加写", 此时原有内容不变, 写入的内容会存在于之前文件内容的末尾.

我们可以用 ‘w’ 和 ‘a’ 的方式来通过不同的需求进行写入文件。当使用 ‘r’ 只读的话无法对文件进行写入,会抛出异常,对已经关闭的文件也是如此。

f = open('d:/test.txt', 'w')
f.write('hello')
f.close()
f = open('d:/test.txt', 'a')
f.write('world')
f.close()

三、中文文件的处理

当我们的文档中含有中文的话可能在读取的时候不是很顺利,会出现乱码等现象。这是因为计算机在读取中文时会采用一定的编码方式,ASCII码表就是最典型的例子。当计算机按二进制读取数字后会用很大的数字来表示中文,但是不同的“编码集”中对应的字符可能不同,所以我们如果想要顺利的去读取中文的话我们必须要保证文件本身的编码方式, 和 Python 代码中读取文件使用的编码方式匹配, 才能避免出现上述问题。

  • 如果此处的编码为 ANSI , 则表示 GBK 编码。
  • 如果此处为 UTF-8 , 则表示 UTF-8 编码。

此时修改打开文件的代码, 给 open 方法加上 encoding 参数, 显式的指定为和文本相同的字符集, 即可解决对含中文文件的处理问题。

f = open('d:/test.txt', 'r', encoding='utf8')

四、上下文管理器

打开文件之后, 很容易忘记关闭它。Python 提供了 上下文管理器 , 来帮助我们来自动关闭文件。

用with语句来打开文件,当with语句块内的代码执行完毕后会自动调用关闭文件,语法结构如下:

with open(...) as file:

我们来用一个例子来更清晰的了解下用法:

with open('d:/test.txt', 'r', encoding='utf8') as f:lines = f.readlines()print(lines)

可莉的话

目前呢我们就已经把Python中的基础语法给学的差不多啦,我们从变量到循环到文件,一步步的渗透学习一定使大家受益匪浅吧~(不是的话就怪可莉)

我们现在有了基础的语法,可以干什么呢?接下来的博客可莉将带大家进行更有趣的学习,和大家一起去用Python去做一些有意思的东西吧~

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

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

相关文章

LabVIEW荧光显微镜下微管运动仿真系统开发

LabVIEW荧光显微镜下微管运动仿真系统开发 在生物医学研究中,对微管运动的观察和分析至关重要。介绍了一个基于LabVIEW的仿真系统,模拟荧光显微镜下微管的运动过程。该系统提供了一个高效、可靠的工具,用于研究微管与运动蛋白(如…

【教学类-19-07】20240214《ABAB式-规律黏贴18格-手工纸15*15CM-一页一种图案,A空,竖向、有边框》(中班)

背景需求 利用15*15CM手工纸制作AB色块手环(手工纸自带色彩) 素材准备 代码展示 作者:阿夏 时间:2024年2月14日 名称:正方形数字卡片AB图案 _ 华光彩云_CNKI A的位置有图案 A空18格 AB向 一页一种图案,…

OAuth 2.0 协议介绍【实现 GitHub 第三方登录】

OAuth(是 Open Authorization 开放授权的缩写),在全世界得到广泛应用,目前的版本是2.0版。 本文会对OAuth 2.0的设计思路和运行流程,做一个简明通俗的解释,主要参考材料为RFC 6749。 OAuth 2.0 是一个开放标准&#…

vmware workstation群晖虚拟机vmdk文件导出

为了防止群晖虚拟机中整个挂掉,里面的文件导不出来,尝试直接从vmdk中获取内容。 1、想采用diskgenius去读取文件,发现volume1是空的。只能读取群晖的系统文件。 2、选择另一个linux系统的虚拟机,选择对应的vmdk 3、如果有文件管理…

【JAVA-Day81】 线程休眠: Java 中暂停线程执行的方法 ⏸️

线程休眠: Java 中暂停线程执行的方法 ⏸️💤 线程休眠: Java 中暂停线程执行的方法 ⏸️💤摘要 📝引言 🚀正文 📚一、什么是线程休眠 ⏸️二、线程什么情况下会休眠 ❓三、模拟线程休眠 &#…

236. 二叉树的最近公共祖先 - 力扣(LeetCode)

题目描述 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以…

基于Echarts的可视化项目

整体的效果 概览区域 <!-- 概览区域模块制作 --><div class"panel overview"><div class"inner"><ul><li><h4>2190</h4><span><i class"icon-dot"></i>设备总数</span></…

SpringCloud-搭建Nacos配置中心

一、Nacos 功能介绍 Nacos&#xff08;Dynamic Naming and Configuration Service&#xff09;是阿里巴巴开源的一个分布式服务注册、配置管理&#xff0c;以及服务健康管理平台。在微服务架构中&#xff0c;配置管理是至关重要的一环&#xff0c;Nacos 提供了可靠、动态的配置…

问题:如果要编辑建好的建筑和空间,需要在分级按钮( )和细分操作按钮楼层下,才能选中建筑物和空间; #微信#媒体#其他

问题&#xff1a;如果要编辑建好的建筑和空间&#xff0c;需要在分级按钮&#xff08; &#xff09;和细分操作按钮楼层下&#xff0c;才能选中建筑物和空间&#xff1b; A、楼层 B、规划图 C、全景 D、建筑物 参考答案如图所示

<网络安全>《33 网络信息安全基础(4)网络安全工程师进阶体系(一)》

1 图谱 1 基础入门 1.1 网络安全导论 网络安全行业简介&#xff1a; 行业前景 历史 重要事件 网络安全意识与法律法规 安全意识 法律法规 案例 网络安全管理概述 安全运营、运维、模型 等保测评 等保简介、等保规定、流程和规范 1.2 渗透测试基础 渗透测试概述 - 流程、分…

jmeter-07jmeter与数据库关联

文章目录 一、JDBC驱动下载二、连接数据库三、写对应的SQL四、进行断言处理方法一:使用beanshell进行断言方法二:使用json进行断言四、为什么数据库查询的结果赋值给了**sql_name**,但是在断言的时候使用的是**sql_name_1**呢?一、JDBC驱动下载 JDBC驱动下载链接 1)5.x.x…

公需课考试怎么搜题找答案? #学习方法#学习方法

这些软件以其强大的搜索引擎和智能化的算法&#xff0c;为广大大学生提供了便捷、高效的解题方式。下面&#xff0c;让我们一起来了解几款备受大学生欢迎的搜题软件吧&#xff01; 1.粉鹿搜题 这是一个公众号 在线搜题刷题平台&#xff0c;支持语言、文字、拍照多种搜索方式…

VitePress-16- 配置- head 的配置网页icon与插入一个script标签

作用说明 head 配置项&#xff0c;可以在页面 HTML 的 <head> 标签中呈现的其他元素。 用户添加的标签在结束 head 标签之前呈现&#xff0c;在 VitePress 标签之后。说白了&#xff0c;就是自定义一些 head 标签中的元素&#xff0c;例如 &#xff1a;页面的icon等。 由…

ubuntu22.04@laptop OpenCV Get Started: 009_image_thresholding

ubuntu22.04laptop OpenCV Get Started: 009_image_thresholding 1. 源由2. image_thresholding应用Demo2.1 C应用Demo2.2 Python应用Demo 3. 重点分析3.1 Binary Thresholding ( THRESH_BINARY )3.2 Inverse-Binary Thresholding ( THRESH_BINARY_INV )3.3 Truncate Threshold…

(15)Hive调优——数据倾斜的解决指南

目录 前言 一、什么是数据倾斜 二、发生数据倾斜的表现 2.1 MapReduce任务 2.2 Spark任务 三、如何定位发生数据倾斜的代码 四、发生数据倾斜的原因 3.1 key分布不均匀 3.1.1 某些key存在大量相同值 3.1.2 存在大量异常值或空值 3.2 业务数据本身的特性 3.3 SQL语句…

扶贫|精准扶贫管理系统|基于Springboot的精准扶贫管理系统设计与实现(源码+数据库+文档)

精准扶贫管理系统目录 目录 基于Springboot的精准扶贫管理系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、管理员模块的实现 &#xff08;1&#xff09;用户信息管理 &#xff08;2&#xff09;贫困户信息管理 &#xff08;3&#xff09;新闻类型管理 &a…

GPT-4影响高度创新思维的领域(一)

GPT-4的应用范围不再局限于对现有信息的检索、整理和复述&#xff0c;而是进一步拓展到了诸如文学创作、科学假设生成、教育辅导、商业策略建议等需要高度创新思维的领域。这种独立思考和创新能力赋予了GPT-4作为虚拟助手时更加丰富多元的角色定位&#xff0c;使其成为一种强大…

备战蓝桥杯---图论之最短路dijkstra算法

目录 先分个类吧&#xff1a; 1.对于有向无环图&#xff0c;我们直接拓扑排序&#xff0c;和AOE网类似&#xff0c;把取max改成min即可。 2.边权全部相等&#xff0c;直接BFS即可 3.单源点最短路 从一个点出发&#xff0c;到达其他顶点的最短路长度。 Dijkstra算法&#x…

二叉树相关OJ题

创作不易&#xff0c;感谢三连&#xff01;&#xff01; 一、选择题 1、某二叉树共有 399 个结点&#xff0c;其中有 199 个度为 2 的结点&#xff0c;则该二叉树中的叶子结点数为&#xff08; &#xff09; A.不存在这样的二叉树 B.200 C.198 D.199解析&#xff1a;选B&…

WebSocket | 基于TCP的全双工通信网络协议

文章目录 1、介绍2、示例2.1、分析2.2、代码开发2.3、功能测试 ​&#x1f343;作者介绍&#xff1a;双非本科大三网络工程专业在读&#xff0c;阿里云专家博主&#xff0c;专注于Java领域学习&#xff0c;擅长web应用开发、数据结构和算法&#xff0c;初步涉猎Python人工智能开…