Python 文件读写操作-Python零基础入门教程

目录

  • 一.Python 文件的打开 open
  • 二.Python 文件的关闭 close
  • 三.Python 文件的读取 read
    • 1.read 函数
    • 2.readline 函数
    • 3.readlines 函数
  • 四.Python 文件的写入 write
    • 1.write 函数语法
    • 2.write 函数使用案例
  • 五.Python 文件偏移 seek
    • 1.seek 函数
    • 2.tell 函数
    • 3.seek / tell 函数示例代码
  • 六.重点总结
  • 七.猜你喜欢

零基础 Python 学习路线推荐 : Python 学习目录 >> Python 基础入门

Python 除了通过 print 函数将数据输出到控制台,也可以通过读 / 写文件的方式读取 / 输出到磁盘文件中,文件读写简称 I / O 操作。Python 文件 I / O 操作一共分为四部分:

  • 打开(open)
  • 读取(read)
  • 写入(write)
  • 关闭(close)

一.Python 文件的打开 open

在 Python 中打开文件使用函数 open,该函数返回文件句柄,具体使用方法如下:

file = open("文件名","打开文件模式")# 示例代码:
# 打开d:/1.txt文件,如果d盘没有这个文件,会自动在d盘创建1.txt的空白文件,file是返回的文件句柄供读/写/关闭文件操作
file = open("d:/1.txt","wb")

其中,打开文件模式有以下几种类型

二.Python 文件的关闭 close

文件在打开读写之后记得要有关闭操作,就好比蹲完坑得擦屁股,关闭文件使用 close 函数。

注意:文件关闭之后,不能在继续对文件读写操作,如果需要读写操作需要重新 open 打开文件。

close() # 关闭文件

三.Python 文件的读取 read

文件打开之后,可以通过返回的文件句柄读取文件中的内容,文件读取有以下几个函数:

1.read 函数

'''
参数:count - 表示需要读取的文字长度, conut 是缺省参数,如果没有设置 count 值,默认读取整个文件所有内容,该函数返回读取到的内容;返回值:返回读取到的内容; 文件读取返回的内容并非字符串 str 类型,而是字节类型 bytes 类型,'b' 前缀代表的就是 bytes .
'''read( [count] )

2.readline 函数

//读取文件一行数据,返回读取的内容readline()

3.readlines 函数

//读取文件的所有行内容,返回读取的所有内容,注意:返回的数据类型是列表,列表中每个数据都是文件中的一行数据readlines()

**注意:文件读取返回的内容并非字符串 str 类型,而是字节类型 bytes 类型,’b’ 前缀代表的就是 bytes . **

**如果想将 bytes 类型转为字符串直接使用 bytes.decode 方法即可,decode 方法默认使用 UTF-8 编码;**假如 d:/1.txt 中的内容如下:

@Blog(个人博客地址): www.codersrc.com
@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!

文件读取的三种方式示例代码如下:

# !usr/bin/env python
# -*- coding:utf-8 _*-
"""
@Author:猿说编程
@Blog(个人博客地址): www.codersrc.com
@File:Python 文件读写操作.py
@Time:2021/04/17 10:00
@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!"""# 方法一:
print("方法一:使用 read() 函数读取txt内容")
file_object = open("d:/1.txt","rb")
contents = file_object.read() # 默认读取所有内容# 读取文件内容,如果文件中含有中文需要decode()解码,否则中文无法显示
print(contents)
print("---"*20)
# 使用decode()解码中文,默认解码格式为utf-8
print("使用decode()函数解码中文:")
print(contents.decode())
file_object.close()print("***"*20)# 方法二:
print("方法二:使用 readline() 函数读取txt内容")
file_object = open("d:/1.txt","rb")
while True:contents = file_object.readline()print(contents.decode())# 使用decode()解码中文,默认解码格式为utf-8if len(contents) == 0: # 读取内容长度为0,读取结束break
file_object.close()print("***"*20)# 方法三:
print("方法三:使用 readlines() 函数读取txt内容")
file_object = open("d:/1.txt","rb")
# readlines() 返回列表,一行数据就是列表中的一个元素
contents = file_object.readlines()
# 遍历列表
for content in contents:print(content.decode())# 使用decode()解码中文,默认解码格式为utf-8
file_object.close()'''
输出结果:方法一:使用 read() 函数读取txt内容b'@Blog(\xe4\xb8\xaa\xe4\xba\xba\xe5\x8d\x9a\xe5\xae\xa2\xe5\x9c\xb0\xe5\x9d\x80): www.codersrc.com\r\n@WeChat Official Account(\xe5\xbe\xae\xe4\xbf\xa1\xe5\x85\xac\xe4\xbc\x97\xe5\x8f\xb7)\xef\xbc\x9a\xe7\x8c\xbf\xe8\xaf\xb4python\r\n@Motto:\xe4\xb8\x8d\xe7\xa7\xaf\xe8\xb7\xac\xe6\xad\xa5\xe6\x97\xa0\xe4\xbb\xa5\xe8\x87\xb3\xe5\x8d\x83\xe9\x87\x8c\xef\xbc\x8c\xe4\xb8\x8d\xe7\xa7\xaf\xe5\xb0\x8f\xe6\xb5\x81\xe6\x97\xa0\xe4\xbb\xa5\xe6\x88\x90\xe6\xb1\x9f\xe6\xb5\xb7\xef\xbc\x8c\xe7\xa8\x8b\xe5\xba\x8f\xe4\xba\xba\xe7\x94\x9f\xe7\x9a\x84\xe7\xb2\xbe\xe5\xbd\xa9\xe9\x9c\x80\xe8\xa6\x81\xe5\x9d\x9a\xe6\x8c\x81\xe4\xb8\x8d\xe6\x87\x88\xe5\x9c\xb0\xe7\xa7\xaf\xe7\xb4\xaf\xef\xbc\x81\r\n'
------------------------------------------------------------
使用decode()函数解码中文:
@Blog(个人博客地址): www.codersrc.com
@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!************************************************************
方法二:使用 readline() 函数读取txt内容@Blog(个人博客地址): www.codersrc.com
@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!************************************************************
方法三:使用 readlines() 函数读取txt内容@Blog(个人博客地址): www.codersrc.com
@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
'''

四.Python 文件的写入 write

1.write 函数语法

文件写入可通过函数 write 完成,使用比较简单,先看看语法:

//直接传入 bytes 类型的字符即可,'b' 前缀代表的就是bytes.write( [bytes] )

2.write 函数使用案例

# !usr/bin/env python
# -*- coding:utf-8 _*-
"""
@Author:猿说编程
@Blog(个人博客地址): www.codersrc.com
@File:Python 文件读写操作.py
@Time:2021/04/17 10:00
@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!"""file_object = open("d:/2.txt","wb")# '\n' 是文件I/O中的换行符,写完文件之后,自动换行
file_object.write(b"1234567\n")
# 注意单引号和双引号的配合使用
file_object.write(b"file_object.write(b'sad')\n")
file_object.write(b"python \n")file_object.close()'''
代码执行完成后,d:/2.txt文件内容如下:1234567
file_object.write(b'sad')
python
'''

注意:写入方式 ‘wb’ ,每次写入文件都会覆盖上一次的内容,即写入之前的内容会被清空;

五.Python 文件偏移 seek

有人看了上面 read 函数的示例代码可能会觉得频繁的打开和关闭文件会比较麻烦。那么仅仅打开和关闭文件一次,通过文件的偏移也能完成上述功能,文件的偏移使用** seek** 函数 。一般而言,seek 函数和 tell 函数都搭配使用;

1.seek 函数

'''
参数:offset - 表示相对whence 偏移多少个字节;whence - 表示偏移的位置,0 代表从文件开头开始算起,1 代表从当前位置开始算起,2 代表从文件末尾算起;'''seek([offset],[whence])

2.tell 函数

// 相对于文件开始位置,当前偏移的字节数seek([offset],[whence])

小窍门:tell 函数也可以用来计算整个文件的 bytes 长度;

3.seek / tell 函数示例代码

# !usr/bin/env python
# -*- coding:utf-8 _*-
"""
@Author:猿说编程
@Blog(个人博客地址): www.codersrc.com
@File:Python 文件读写操作.py
@Time:2021/04/17 10:00
@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!"""file_object = open("d:/2.txt","rb")# 获取当前的文件偏移,由于还没开始读取内容,偏移量等于 0
count = file_object.tell()
print(count)
# 读取文本所有数据内容,文件自动偏移到文件末尾
contents = file_object.read()
# 获取整个文件的偏移量 ,实际上就是文件内容的大小
count = file_object.tell()
print(count)
# 将文件指针偏移到文件开始位置
file_object.seek(0,0)
# 读取一行数据,按道理讲应该是获取第一行数据
contents = file_object.readline()
print(contents.decode())
# 获取当前偏移量
count = file_object.tell()
print(count)
# 继续读取一行数据
contents = file_object.readline()
print(contents.decode())
# 获取当前偏移量
count = file_object.tell()
print(count)
file_object.close()'''
输出内容:0
474
python教程 - 猿说python : 第一行数据 www.codersrc.com
68
python教程 - 猿说python : 第二行数据 www.codersrc.com
136
'''

注意:一般只要调用 read / readline / readlines / write 等函数,文件指针会自动发生偏移。

六.重点总结

  • 1.read 函数可以设置读取指定的长度,例如:只读取 10 个字符 read(10);
  • 2.readlines 返回值是列表 list,并非 bytes 类型,而列表中的每一个元素都是文件中的一行数据,类型是 bytes 类型;
  • 3.如果文件读取的内容含有中文,需要通过函数 decode 方法解码转为字符串,decode 方法默认为 UTF-8 解码;
  • 4.文件 open 之后记得 close ,养成良好的书写习惯;

七.猜你喜欢

  1. Python for 循环
  2. Python 字符串
  3. Python 列表 list
  4. Python 元组 tuple
  5. Python 字典 dict
  6. Python 条件推导式
  7. Python 列表推导式
  8. Python 字典推导式
  9. Python 函数声明和调用
  10. Python 不定长参数 *argc/**kargcs
  11. Python 匿名函数 lambda
  12. Python return 逻辑判断表达式
  13. Python 字符串/列表/元组/字典之间的相互转换
  14. Python 局部变量和全局变量
  15. Python type 函数和 isinstance 函数区别
  16. Python is 和 == 区别
  17. Python 可变数据类型和不可变数据类型
  18. Python 浅拷贝和深拷贝

未经允许不得转载:猿说编程 » Python 文件读写操作

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

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

相关文章

面趣 | 为什么要分稳定排序和非稳定排序?

作者channingbreeze如需转载,请联系原作者。小史是一个应届生,虽然学的是电子专业,但是自己业余时间看了很多互联网与编程方面的书,一心想进BAT互联网公司。今天他去了一家互联网小巨头公司面试了。没想到面试并不像想象中的顺利。…

个人求职简历计算机应用技术学院信息门户,计算机应用技术专业求职简历范文...

计算机应用技术专业求职简历范文应届毕业生求职网为毕业生推荐的是计算机方面的简历范文,欢迎阅读浏览:姓名:yjbys 性别:出生年月: 民族:户口所在地: 现居住地:婚姻状况:…

云漫圈 | AR VR傻傻分不清楚。。。

原文出自【烹茶十一】对此,你是不是也有好多吐槽的,来聊聊呀~~推荐阅读这届程序员,要做好苦日子的准备了?我跟OpenStack 1-8年,从ABC到HI、到KO完01微 信 群 添加小编微信:tangguoyemeng,备注“…

Python 异常处理-Python零基础入门教程

目录 一.Python 异常处理简介二.Python 异常捕获方式 1.捕获所有异常2.捕获指定异常3.捕获多个异常4.万能的异常捕获5.异常中的 else6.异常中的 finally7.raise 主动触发异常 三.猜你喜欢 零基础 Python 学习路线推荐 : Python 学习目录 >> Python 基础入门 在 Python 开…

解析微服务架构组件,看这一篇文章就够

1. 如何发布和引用服务服务描述:服务调用首先解决的问题就是服务如何对外描述。 常用的服务描述方式包括 RESTful API、XML 配置以及 IDL 文件三种。RESTful API主要被用作 HTTP 或者 HTTPS 协议的接口定义,即使在非微服务架构体系下,也被广泛…

学计算机高中选那三科,女生高中选哪三科最吃香

女生高中选哪三科最吃香2020-12-30 14:42:19文/丁雪竹女生高中选哪三科最吃香,怎么选择好,小编整理了相关信息,来看一下!女生高中选哪三科最吃香兴趣能够决定学习的深度,女生只要根据自己的兴趣,在最佳组合…

CTF-杂项题-伪加密

手动分离压缩包注意: zip压缩包文件头格式为504B0304,之间包含504B0102,文件以504B0506****结尾,注意这类格式。 zip伪加密 zip伪加密是在文件头的加密标志位做修改,进而再打开文件时识被别为加密压缩包。但实际是没有…

Anaconda是什么?Anconda下载安装教程 - Python零基础入门教程

目录 一.前言二.Anaconda 是什么?三.Anaconda 下载地址四.Anaconda 安装五.猜你喜欢 零基础 Python 学习路线推荐 : Python 学习目录 >> Python 基础入门 一.前言 Anaconda 工具集合 – 第三方库集合Pycharm 开发工具,俗称 IDE – 写代码工具 二…

Cloud一分钟 | 电商月将至,腾讯云DCDB助力电商企业应对支付洪峰

Hello,everyone:10月08早,星期五,祝大家工作愉快!一分钟新闻时间:推荐阅读1.7亿条数据,比胡同和撸串更真实的北京面趣 | 为什么要分稳定排序和非稳定排序?使用动态规划解决童年难题V…

html5 自定义标签图例,奥维互动地图浏览器电脑版中自定义标签图标的增加方法...

这篇文章讲的是奥维互动地图浏览器电脑版中自定义标签图标的增加方法,感兴趣的小伙伴可以来学习一下哦。奥维互动地图浏览器电脑版中自定义标签图标的增加方法1、点击菜单:系统---数据管理---自定义图标管理(也可以就在标签图片选择--自定义页面&#xf…

CTF-MISC杂项题1

由于内容过多,分两篇展示 杂项题基本解题攻略: 内容: 1.文件操作与隐写 2.图片隐写术 3.压缩文件处理 4.流量取证技术 文件操作与隐写 file命令可识别文件类型 file filejpg file filegpng file filegzip 文件类型识别 在Window&#xff…

一座在云端的工厂是什么样的?

相信人们在生活中体验了很多云应用带来的便捷,而在工业领域,一座在云端的工厂会是什么样的呢?MindSphere on Alibaba Cloud就要来了,很快中国的小伙伴们就可以真切感受到了。就在9月19日,西门子和阿里云就MindSphere落…

Pycharm 提示:this license * has been cancelled - Python零基础入门教程

目录 一.前言一.找到 hosts 文件二.修改 hosts 文件三.检查 hosts 文件是否修改成功四.pycharm 安装详细教程五.猜你喜欢 一.前言 零基础 Python 学习路线推荐 : Python 学习目录 >> Python 基础入门 Pycharm 安装过程中,提示 this license **** has been c…

湘潭哪里学计算机编程,湘潭哪里学机器人编程?湘潭学机器人编程的学校有哪些?...

原标题:湘潭哪里学机器人编程?湘潭学机器人编程的学校有哪些?随着机器人编程教育在一线城市的大众化,许多家长也纷纷跟随着趋势送孩子去学习,如果你也想要自己的孩子学习机器人编程,那就一起来看看学习机器…

Cloud一分钟 | 蚂蚁金服估值超万亿;Google大举进军游戏市场

Hello,everyone:10月09日早,星期二,祝大家工作愉快!一分钟新闻时间:完1.微信群:添加小编微信:tangguoyemeng,备注“进群姓名公司职位”即可,加入【云计算学习…

CTF-MISC杂项题2

这篇博客接着CTF-MISC杂项题1继续讲 03 压缩文件处理 压缩文件分析 伪加密一般考察zip与rar,现在不常考,因为现在压缩软件功能强大,自动可以识别伪加密 框里的80的尾数为0即可解密,若改了值还报错,为真加密 …

Pycharm设置开发模板/字体大小/背景颜色 - Python零基础入门教程

目录 一.Pycharm 设置字体大小/风格二.Pycharm 设置背景颜色三.Pycharm 设置开发模板四.猜你喜欢 零基础 Python 学习路线推荐 : Python 学习目录 >> Python 基础入门 一.Pycharm 设置字体大小/风格 选择 File –> setting –> Editor –> Font ,可以看到如上…

我们研究了1.5万场活动,换个大城市生活可能对你有用

图片来源:视觉中国作者宋宇 唐也钦 陈琪来源DT财经原创作品,如有转载,请联系公众号授权。“年轻人在大城市可以选择两种生活,一种叫北上深,一种叫广。在哪个城市可以有更好的生活?DT君最近格外关注这个话题…

CTF-Crypto密码学

密码学 01密码学概述 密码学的发展 密码编码学 编码与加密? 编码为一类映射的关系(一一映射) 加密为一类算法(有算法(公开的),密钥(不可泄漏)) 明文 ------> 密文 plain text cipher text 对称密码和不对称密码算法 对称密码算法优点:加密…

Cloud一分钟 | 谷歌退出美国防部云计算竞标;网络黑灰产业已近千亿,个人信息泄露是源头...

Hello,everyone:10月10日早,星期三,祝大家工作愉快!一分钟新闻时间:完1.微信群:添加小编微信:tangguoyemeng,备注“进群姓名公司职位”即可,加入【云计算学习…