文章目录

  • 综述
  • 1、打开文件
  • 2、读取内容
  • 3、关闭文件

 Python读取文件时进行文本处理的前提,在进行读取文件之前,我们先创建一个文本文件作为源文件,例子中文件名为exercise1.txt,文件内容如下:

综述

 在Python中,读文件主要分为三个步骤:打开文件、读取内容、关闭文件。一般形式如下:

try:file = open('/path/to/file', 'r')     # 打开文件data = file.read()                   # 读取文件内容
finally:if file:file.close()                     # 确保文件被关闭

 模板中的路径如果不是相当精确,但得放在和编程目录的同一个目录下,但如果精确,就可以在本机的任何一个位置,只要找到文件文职复制目录即可。但是上面的读文件做法很繁琐,我们可以使用Python的with语句来帮我们自动调用 close 方法:

with open('/path/to/file', 'r') as file:data = file.read()

 本来可以用try ,finally来解决的问题,为什么要用with语句呢?因为两个原因:其一,python是一门简短精悍的语言,提倡简洁的编码风格。其二,with使用了上下文管理器,可以自动获取上下文相关内容,让开发者更专注于业务。

1、打开文件

 打开文件时,我们看到上面模板中使用了Open函数,open() 函数用于打开一个文件,格式为:open(路径+文件名, 读写模式, 编码),创建一个 file 对象,相关的方法才可以调用它进行读写,里面的’r’指的是只读模式,不同的模式可以进行不同的操作:

模式 描述
r 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
r+ 打开一个文件用于读写。文件指针将会放在文件的开头。
w 打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
w+ 打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
a 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
a+ 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
  1. r(只读模式)

    注意:Python中路径文件夹之间的间隔是用 / ,与以往的不同。
     运行后,发现出现了错误,错误提示为:‘gbk’ codec can’t decode byte 0xae in position 4: illegal multibyte sequence。这个时候我们只需要在一开始就指定编码,通常使用encoding=‘UTF-8’,再次运行后如下:
try:file= open('D:/大学工作所做文档/学习资料/毕业设计学习准备/编程学习/exercise1.txt', 'r',encoding='UTF-8')      # 打开文件data = file.read()                   # 读取文件内容print(data)
finally:if file:file.close()                     # 确保文件被关闭

运行结果:

  1. w(写入模式)
    首先创建好一个名为guest.txt的文本文件,具体内容如下:


当我们使用写入模式时,原来的内容将会被删除:

name = input('请输入你的名字:')
print('欢迎你,'+name+'!')
file_path = 'D:/大学工作所做文档/学习资料/毕业设计学习准备/编程学习/guest.txt'
with open (file_path,'a',encoding='UTF-8') as file_object:file_object.write(name+'\n')

运行结果:

打开文本文件观察,之前的内容确实不在了:

  1. a(追加模式)
    当我们采用追加模式打开文档时,也就是读写模式,并且写入内容接在文档内容后面:
2、读取内容

 Python的文本文件的内容读取中,有三类方法:read()、readline()、readlines(),这三种方法各有利弊:

  • read()是最简单的一种方法,一次性读取文件的所有内容放在一个大字符串中,即存在内存中。利端:方便、简单;一次性独读出文件放在一个大字符串中,速度最快。弊端:文件过大的时候,占用内存会过大。例子如上。

  • readline()每次读取一行信息,结果是一个list。利端:占用内存小;逐行读取。弊端:由于是逐行读取,速度比较慢。继续使用一开始创建的exercise1.txt文件:

filepath = 'D:/大学工作所做文档/学习资料/毕业设计学习准备/编程学习/exercise1.txt'
with open (filepath, 'r',encoding='UTF-8') as file:contents = file.readline()print(contents)

运行结果:

另外一种使用for循环来实现逐行读取:

filepath = 'D:/大学工作所做文档/学习资料/毕业设计学习准备/编程学习/exercise1.txt'
with open (filepath, 'r',encoding='UTF-8') as file:for line in file:print(line.strip())

运行结果:

  • readlines()一次性读取文本的所有内容,返回一个列表,列表每个元素代表一行。这种方法读取的文本内容,每行文本末尾都会带一个’\n’换行符。利端:一次性读取文本内容,速度比较快。弊端:随着文本的增大,占用内存会越来越多。
filepath = 'D:/大学工作所做文档/学习资料/毕业设计学习准备/编程学习/exercise1.txt'
with open (filepath, 'r',encoding='UTF-8') as file:contents = file.readlines()print(contents)

运行结果:

 使用readlines()方法时,我们也可以把列表转换为原来的文本格式,方法便是使用for循环:

3、关闭文件

 open() 函数用于打开一个文件,创建一个 File 对象,File对象的close()方法刷新缓冲区里任何还没写入的信息,并关闭该文件,这之后便不能再进行写入。当一个文件对象的引用被重新指定给另一个文件时,Python会关闭之前的文件。用close()方法关闭文件是一个很好的习惯。

Python读取文本内容相关推荐

  1. 如何用python读取文本中指定行的内容

    如何用python读取文本中指定行的内容 搜索资料 我来答 分享 新浪微博 QQ空间 浏览 5284 次 查看全文 http://www.taodudu.cc/news/show-64036.ht ...

  2. python读出文件中的内容_Python读取文本内容

    综述 在Python中,读文件主要分为三个步骤: 打开文件 . 读取内容 . 关闭文件 .一般形式如下: try: file = open('/path/to/file', 'r') # 打开文件 d ...

  3. Python 实现读取文本内容、文件重命名、替换文本内容

    代码整体结构: 一.Python实现读取文本内容 # -*- coding: utf-8 -*- """ @date: 2022/01/11 18:40 @author: ...

  4. python 读取特定一段文本_python提取文本内容 python读取文本每行指定内容

    用"python"怎么提取文件里的指定内容?原来这些年,他痊愈的只是外表,有一种伤,它深入骨髓,在人看不见的地方肆虐. python读取文件内容的方法: 一.最方便的方法是一次性读 ...

  5. python读文件一次读特定行_Python3实现从文件中读取指定行的方法 python读取文本内每行指定内容...

    如何用python读取文本中指定行的内容在这个世界上说不出口的话太多了,你能不能陪小编去,你能不能留下来,你能不能帮帮小编,你对小编很重要,所以你可不可以不要走,到最后哽咽出口的却是,没关系,小编可以 ...

  6. python中读取文件内容-Python读取文件内容与存储

    Python读取与存储文件内容 一..csv文件 读取: importpandas as pd souce_data= pd.read_csv(File_Path) 其中File_path是文件的路径 ...

  7. Python读取文本的三种方式对比

    1.概述 Python有三种读取文本的方式,分别是: read() readline() readlines() 2.三种方式的优缺点分析 2.1 read() 最简单的一种方法,一次性读取文件的所有 ...

  8. python读取文件内容-Python读取文件内容与存储

    Python读取与存储文件内容 一..csv文件 读取: importpandas as pd souce_data= pd.read_csv(File_Path) 其中File_path是文件的路径 ...

  9. python读取文本数据绘制曲线图

    目录 写在前面 代码 reference 写在前面 1.本文内容 python读取文本数据曲线图 2.转载请注明出处: https://blog.csdn.net/qq_41102371/articl ...

  10. 一文教你学会python读取文本及字符串常用操作

    python 读取txt文件 打开支付宝首页搜索'543701491',领取马云的支付宝红包 Python的文本处理是经常碰到的一个问题,Python的txt文件读取中,有三类方法:read().re ...

最新文章

  1. c++ 判断nil_golang A=nil,B=A,but B!=nil 这是真的
  2. Ansible之八:Playbook循环
  3. [Python学习]PycURL简单学习 - limodou的学习记录 - limodou是一个程序员,他关心的焦点是Python, DocBook, Open Source …...
  4. 如何控制让PO的数量不超过PR数量
  5. 笔记本应用/测试软件大全(个人使用心得)
  6. 【转】 嵌入式C语言编程中Inline函数的应用
  7. 【QQ输入法】QQ输入法-剪切板 释放内存
  8. Flex里Application和TitleWindow数据交互方法
  9. 外键 级联操作 mysql
  10. ByWater Solutions支持在图书馆中使用开源
  11. Anaconda下载安装
  12. Chrome安装Axure RP插件
  13. keil编程和c语言,C语言编程及keil软件使用.ppt
  14. java 加减乘除_Java实现加减乘除 | 学步园
  15. 慢内容广告:品牌增长的长线主义
  16. Hibernate检索策略
  17. ubuntu14.04扩展屏幕后,打开matlab就死机。求大神帮忙解决!!!万分感谢
  18. 解决 remote: Repository not found. fatal: repository 'https://github.com/xxxx/xxxx.git/
  19. 立秋至,暑难消,e安在线信息安全快讯
  20. 公关人员活用Koomail给客户群发邮件

热门文章

  1. IGame游戏公司的故事
  2. 9大增长黑客牛人组织盘点,增长黑客发展奠基人!
  3. C++手动开启O2、O3优化略
  4. R语言利用openxlsx包输出EXCEL报告
  5. 重新开始噼里啪啦写小文字啦~
  6. Bootstrap 折叠(Collapse)插件
  7. Linux中启动Steam报错libGL error的解决办法
  8. gitlab-ci配置
  9. 收图啦!CDEC 2019 北京站 高颜值亮相~~~
  10. 介绍一个直接浏览微软知识库文章的工具