python学习笔记20(读取文件内容)

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文件:
绝对路径

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值