当前位置: 主页 > Python语言

python中read函数-python中round函数

发布时间:2023-02-10 22:08   浏览次数:次   作者:佚名

在“Python open()函数”一节中,介绍了如何通过open()函数打开一个文件。 在此基础上,本节继续讲解如何读取已打开文件中的数据。

Python提供了以下三个函数,都可以帮助我们实现读取文件中数据的操作: read()函数:逐字符读取文件内容; readline()函数:逐行读取文件内容内容; readlines() 函数:一次读取文件中的多行内容。

本节首先讲解read()函数的用法,readline()和readlines()函数将在后续章节详细介绍。

Python read()函数 对于借助open()函数以可读模式(包括r、r+、rb、rb+)打开的文件,可以调用read()函数逐字节读取文件中的文件(或逐个字符)。 内容。

如果文件以文本模式(不是二进制模式)打开,则read()函数逐字符读取; 相反,如果文件以二进制模式打开,则 read() 函数逐字节读取。

read()函数的基本语法格式如下:

文件。 阅读([大小])

其中,file代表打开的文件对象; size 是一个可选参数,用于指定一次可以读取的最大字符数(字节)。 如果省略,默认一次读取所有内容。

例如,首先创建一个名为 my_file.txt 的文本文件python中read函数,内容为:

Python教程

然后在my_file.txt同级目录下新建一个file.py文件,写入如下语句:

python中read函数_python中read函数_python中round函数

#以 utf-8 的编码格式打开指定文件 f = open("my_file.txt",encoding = "utf-8") #输出读取到的数据 print(f.read()) #关闭文件 f.close()

程序执行结果为:

Python教程

注意,操作文件完成后,必须通过调用close()函数手动关闭打开的文件,以免程序出现不必要的错误。

当然,我们也可以通过size参数指定read()每次读取的最大字符数(或字节数),例如:

python中read函数_python中round函数_python中read函数

#以 utf-8 的编码格式打开指定文件 f = open("my_file.txt",encoding = "utf-8") #输出读取到的数据 print(f.read(6)) #关闭文件 f.close()

程序执行结果为:

Python

显然,这个程序中的 read() 函数只读取了 my_file 的前 6 个字符。

同样python中read函数,size表示一次最多可以读取的字符数(或字节数),所以即使设置的size大于文件存储的字符数(字节数),read()函数也不会报错一个错误,它只会读取文件中的所有数据。

另外,对于以二进制格式打开的文件,read()函数会逐字节读取文件内容。 例如:

python中read函数_python中round函数_python中read函数

#以二进制形式打开指定文件
f = open("my_file.txt",'rb+')
#输出读取到的数据
print(f.read())
#关闭文件
f.close()

程序执行结果为:

b'Python\xe6\x95\x99\xe7\xa8\x8b\r\n#39;

如您所见,输出数据是 bytes 字节串。 我们可以调用 decode() 方法将其转换为我们知道的字符串。

对于bytes字节串,读者可以阅读“Python bytes类型”部分了解详情。

python中round函数_python中read函数_python中read函数

另外需要注意的是,如果要使用read()函数成功读取文件内容,除了严格遵循read()的语法外,还要求open()函数默认必须是可读的(包括 r, r+, rb, rb+ )打开一个文件。 比如上面程序中open()的打开方式改为w,程序会抛出io.UnsupportedOperation异常,提示该文件没有读权限:

追溯(最近一次通话):

文件“C:\Users\mengma\Desktop\file.py”,第 3 行,位于

打印(f.read())

io.UnsupportedOperation:不可读

read()函数抛出UnicodeDecodeError异常的解决方法在使用read()函数时,如果Python解释器提示UnicodeDecodeError异常,原因是目标文件使用的编码格式和打开时使用的编码格式有关() 函数打开文件不匹配。

例如目标文件的编码格式为GBK编码,我们使用open()函数以文本方式打开文件,则手动指定编码参数为UTF-8。 在这种情况下,由于编码格式不匹配,当我们使用read()函数读取目标文件中的数据时,Python解释器会提示UnicodeDecodeError异常。

解决这个问题,要么将open()函数中的encoding参数值修改为与目标文件相同的编码格式,要么重新生成目标文件(即修改文件的编码格式与编码相同open() 函数中的参数)。

此外,还有一种方法:先以二进制方式读取文件,然后调用bytes的decode()方法,将读取到的字节串转换成使用目标文件编码格式的可识别字符串。

例如:

python中read函数_python中round函数_python中read函数

#以二进制形式打开指定文件,该文件编码格式为 utf-8 f = open("my_file.txt",'rb+') byt = f.read() print(byt) print("\n转换后:") print(byt.decode('utf-8')) #关闭文件 f.close()

程序执行结果为:

b'Python\xe6\x95\x99\xe7\xa8\x8b\r\n#39;

转换后:

Python教程