700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > python读出文件中的内容_Python读取文本内容

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

时间:2020-04-14 08:31:20

相关推荐

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

综述

在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+

打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。

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() # 确保文件被关闭

运行结果:

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')

运行结果:

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

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()方法关闭文件是一个很好的习惯。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。