1.一次性读取文件全部内容(读取的文件milktea和main.py在同一目录的情况)

'''
读取与main.py同一目录的文件milktea.txt文件里面的内容
利用open()函数打开文件,返回的是一个表示文件的对象,将这个对象命名为file_object
下面这个代码是文件里面不包含汉字的情况,如果文件中包含汉字就会出现乱码
'''with open('milktea') as file_object:contents = file_object.read()if contents:print(contents)else:'''相比于原始文件,该输出唯一不同的地方就是末尾多了一个空行。之所以出现这个空行,是因为read()到达文件末尾时候返回一个空字符串,而将这个空字符串显示出来就是一个空行'''# 借助函数rstrip()将空行删除print(contents.rstrip())

不删除末尾空行的效果:

(2)文件里面包含汉字的情况:

数据之所以没有读出来,是因为python读取的数据和我们文本里面默认的文本编码方式不同,这时候就造成了数据没有被读取出来,但是文件里面有汉字是很平常的情况啊,我们怎么办?

with open('milktea', encoding='utf-8') as file_object:contents = file_object.read()print(contents)
print('好好生活啊~')
12345
56783
aaaa
bbbb
cdef
好好生活好好生活啊~


个人认为《python读写文本文件和二进制文件的方法以及注意事项》这篇文章中关于读写文本文件内容的注意事项非常详尽,上图就是截取自这篇博客,值得好好看一看。

(3)读取单行代码

with open('milktea', encoding='utf-8') as file_object:
# 读取一行代码contents = file_object.readline()
# 借助循环实现读取此文本内的所有行内容while contents:
# 借助readline()读取到的内容不仅仅包含文件一行里的内容,还有回车符print(contents.rstrip())contents = file_object.readline()print('小朋友,你已经看完了我的日记了~')

这是这段代码的效果图:

如果我不删除字符串末尾的空白:


关键字with在不需要访问文件之后将其关闭,这个关闭是python自身在合适的时候进行关闭。
特别注意:

这也就是说我们所创建的file.object只是局部变量,并不能作为全局变量使用,要想获得文件的内容,借助readline()函数将文件各行的内容存储在一个列表里面。

# 利用列表将读取到的内容可以在with引导的函数外使用
file_contents = []
with open('milktea', encoding='utf-8') as file_object:
# 读取一行代码contents = file_object.readline()
# 借助循环实现读取此文本内的所有行内容while contents:
# 借助readline()读取到的内容不仅仅包含文件一行里的内容,还有回车符file_contents.append(contents)contents = file_object.readline()print('小朋友,你已经看完了我的日记了~')
print(file_contents)
小朋友,你已经看完了我的日记了~
['今天风很大\n', '我穿的贼暖和\n', '哎呀妈呀\n', '五点了\n', '明天蹲实验室\n', '二岁\n', '好好生活\n']

通过列表存储的形式我们很容易看出来,在每读取完一行的内容之后,contents内容里面会包含一个回车符,如果想要跟原来文本文件的内容一模一样,就需要借助函数rstrip().

当然在我们传统的观念里面,打开文件用open()函数,那么关闭函数就可以借助close函数,这个是非常正确的思维,但是但是但是,如果在读取文件的代码中有一处出现了问题,那么没等执行到close()函数,程序就卡住了,这时候文件也并没有关闭,而文件没有关闭就很容易造成数据丢失,所以借用with来让python自己选择一个合适的时候自动关闭文件也是一种办法。

2.通过文件路径访问文件内容

相对路径格式:

with open('text_files\filename.txt', encoding='utf-8') as file_object:

而绝对路径是将文件的准确位置告诉python:

在F盘Python文件夹里面建立一个名为python的txt文件:

python学习笔记20(读取文件内容)相关推荐

  1. Python学习笔记D9(文件)

    Python学习笔记D9(文件) 文件 1.打开文件 open(file, mode='r') 接收两个参数:文件名(file)和模式(mode),用于打开一个文件,并返回文件对象,如果该文件无法被打 ...

  2. Python学习笔记 1.0 基础内容篇章

    Python学习笔记 1.0 基础内容篇章 注释 变量 一.定义变量 二.使用变量 bug和debug bug: Debug工具: 数据类型 认识数据类型 在定义数据类型时发生的错误: 数据类型的补表 ...

  3. python 四种逐行读取文件内容的方法

    目录 方法一:readline函数 方法二:一次读取多行数据 方法三:直接for循环 方法四:使用fileinput模块 下面是四种Python逐行读取文件内容的方法, 并分析了各种方法的优缺点及应用 ...

  4. python学习笔记:读取xyz文件

    在药学的Ai研发过程中,经常要制作清洗文件和处理各种文件格式.利用openBabel这样功能能够大大减轻转换过程的麻烦.然而偶然也需要应对一下场景下处理xyz文件抽取相关的坐标体系去计算小分子之间的作 ...

  5. 深度之眼 - Python学习笔记——第八章 文件、异常和模块

    第八章 文件.异常和模块 实际应用中,我们绝大多数的数据都是通过文件的交互完成的 8.1 文件的读写 8.1.1 文件的打开 文件的打开通用格式 with open("文件路径", ...

  6. python学习笔记之操作文件,模块使用

    文件操作: 基础操作: 创建/打开文件: #语法 file=open(filename,mode='r',buffering=-1,encoding=None,errors=None,newline= ...

  7. python 学习笔记(十二) 文件和序列化

    python 文件读写和序列化学习. ## python文件读写 `1 打开并且读取文件` f = open('openfile.txt','r') print(f.read()) f.close() ...

  8. Python学习笔记九:文件I/O

    打印到屏幕: 1 #!/usr/bin/python 2 3 print "Python is really a great language,", "isn't it? ...

  9. Python学习笔记三(文件操作、函数)

    一.文件处理 1.文件打开模式 打开文本的模式,默认添加t,需根据写入或读取编码情况添加encoding参数. r   只读模式,默认模式,文件必须存在,不能存在则报异常. w  只写模式,若文件不存 ...

最新文章

  1. Android.mk文件语法规范及使用模板 (转载)
  2. iOS开发-获取设备型号信息
  3. Java用数组的包文件_在Java中获取包内的类文件数组
  4. 错误处理:RuntimeError: [enforce fail at ..\caffe2\serialize\inline_container.cc:145] . PytorchStreamRead
  5. [PY3]——内置数据结构(4)——字符串格式化(format)
  6. latex中插图心得
  7. 应用程序调试技术(更新程度:完毕)送源码及PPT
  8. Java运行原理研究(未完待续)
  9. mysql json 引号 双引号_关于JSON字符串key缺少双引号的解决方法 的讲解
  10. 利用子查询解决复杂sql问题
  11. WOL局域网与外网远程唤醒概要
  12. 从神话诗歌到奇幻科学的人类探索史·《月亮》·总篇(有配图)
  13. c语言编写好的程序运行自动退出,VS 2015 写的第一个c语言控制台程序,运行完程序就自动...
  14. 程序员需谨记的8条团队开发原则
  15. 火爆社区的开源数据可视化工具 datart 新用户体验教程
  16. Azure NSG(安全组)
  17. 转载-酷狗音乐API
  18. Matlab 矩阵论 矩阵分解的计算实现(六)矩阵的正交三角分解
  19. java向MySQL插入当前时间的几种方式
  20. html如何做交互效果,12个创新的网页界面交互和动画效果

热门文章

  1. 安装Windows和Ubuntu双系统 (Legacy + MBR)
  2. php商城伪静态,ECShop商城伪静态规则文件httpd.ini
  3. 网络在线校时服务器ip,网络校时服务器如何同步服务器时间?
  4. java 秒杀代码_Java秒杀系统实战系列~商品秒杀代码实战
  5. 红米note2 android版本是多少,红米Note2内存容量是多少?红米Note2运存ram是多少?...
  6. pycharm里面的搜索关联前面的符号意义以及执行用例如何同时打开2个浏览器不关闭
  7. ffmpeg 拼接视频
  8. 羡慕!因工作琐事太多,女子果断从体制内裸辞
  9. 为何Word 向表格里插入图片时显示不全呢?
  10. 全景封面视频生成技术在淘宝的应用