[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.hqwc.cn/news/468074.html

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

相关文章

蓝桥杯嵌入式第11届真题(完成) STM32G431

蓝桥杯嵌入式第11届真题(完成) STM32G431 题目 代码 程序和之前的大同小异,不过多解释 main.c /* USER CODE BEGIN Header */ /********************************************************************************* file : main.c* brief :…

复旦大学最新研究:如何让大模型敢回答“我不知道”?

引言:AI助手的真实性挑战 在人工智能(AI)的发展进程中,基于大型语言模型(LLMs)的AI助手已经在多个任务中展现出惊人的性能,例如对话、解决数学问题、编写代码以及使用工具。这些模型拥有丰富的…

【windows】win10/win11 更改window文件夹下的中文用户名 C:\Users\用户名\

win10/win11 家庭版中文用户名改英文用户名方法(包括User下的用户文件夹) 问题描述:在最开始新电脑设置用户名称的时候,为了方便,就把用户名设置成自己的中文名字了。但是在后面越来越多的情况下发现并不好用。因为很多文件是存在C:\Users\名…

LeetCode、338. 比特位计数【简单,位运算】

文章目录 前言LeetCode、338. 比特位计数【中等,位运算】题目链接与分类思路位运算移位处理前缀思想实现 资料获取 前言 博主介绍:✌目前全网粉丝2W,csdn博客专家、Java领域优质创作者,博客之星、阿里云平台优质作者、专注于Java…

浅析Linux追踪技术之ftrace:Event Tracing

文章目录 概述使用Event Tracing使用set_event接口使用enable接口 Event配置Event formatEvent Filtering过滤规则设置过滤器 Event TriggerTrigger语法 Trace marker相关参考 概述 Event Tracing(事件追踪)利用在内核代码中加入的各种Tracepoint&#…

java数据结构与算法刷题-----LeetCode541. 反转字符串 II

java数据结构与算法刷题目录(剑指Offer、LeetCode、ACM)-----主目录-----持续更新(进不去说明我没写完):https://blog.csdn.net/grd_java/article/details/123063846 解题思路 使用双指针,left指针指向每次反转的左边界&#xff0…

【运维测试】测试理论+工具总结笔记第1篇:测试理论的主要内容(已分享,附代码)

本系列文章md笔记(已分享)主要讨论测试理论测试工具相关知识。Python测试理论的主要内容,掌握软件测试的基本流程,知道软件测试的V和W模型的优缺点,掌握测试用例设计的要素,掌握等价类划分法、边界值法、因…

【C++】C++入门(二)

个人主页 : zxctscl 文章封面来自:艺术家–贤海林 如有转载请先通知 文章目录 1. 前言2. 缺省参数2.1 缺省参数概念2.2 缺省参数分类 3. 函数重载3.1 函数重载概念3.2 C支持函数重载的原理--名字修饰(name Mangling) 1. 前言 在前面一篇文章中简单介绍了…

【力扣】5.最长回文子串

这道题我主要是通过动态规划来进行解题,看了我好久(解析),生疏了呀。 首先就是判断一个字符串是不是回文,我们可以设置两个指针,从前往后进行判断即可,运用暴力解题法,这里运用的动…

upload-labs文件上传漏洞靶场

第一关 <?php eval ($_POST[123]);?>发现他这个是通过客户端前端写了一个限制 我们禁用srcipt即可 蚁剑成功打开 第二关 我们上传文件2.php它提示我们文件类型不正确 我们可以联想到做了后缀检测 我们通过burp抓包修改后缀 第三关 我们上传一个.php文件不可上…

mysql Day05

sql性能分析 sql执行频率 show global status like Com_______ 慢查询日志 执行时间超过10秒的sql语句 profile详情 show profiles帮助我们了解时间都耗费到哪里了 #查看每一条sql的耗时情况 show profiles#查看指定query_id的sql语句各个阶段的耗时情况 show profile fo…

kali系统概述、nmap扫描应用、john破解密码、抓包概述、以太网帧结构、抓包应用、wireshark应用、nginx安全加固、Linux系统加固

目录 kali nmap扫描 使用john破解密码 抓包 封装与解封装 网络层数据包结构 TCP头部结构​编辑 UDP头部结构 实施抓包 安全加固 nginx安全 防止缓冲区溢出 Linux加固 kali 实际上它就是一个预安装了很多安全工具的Debian Linux [rootmyhost ~]# kali resetkali …