您现在的位置是:群英 > 开发技术 > Python语言
Python读取txt文件有几种方法,区别在哪?
Admin发表于 2021-12-28 18:56:572296 次浏览

    Python读取txt文件有几种方法?读取文件内容是比较常见的操作,在Python中有三种函数能帮我们实现这个操作,接下来我们就具体的来了解看看,如何实现Python读取txt文件,及实现方法的区别在哪?

    本教程操作环境:windows7系统、python3.7版,DELL G3电脑

    Python 提供了如下 3 种函数,它们都可以帮我们实现读取文件中数据的操作:

  • read() 函数:逐个字节或者字符读取文件中的内容;

  • readline() 函数:逐行读取文件中的内容;

  • readlines() 函数:一次性读取文件中多行内容。

    Python read()函数

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

    如果文件是以文本模式(非二进制模式)打开的,则 read() 函数会逐个字符进行读取;反之,如果文件以二进制模式打开,则 read() 函数会逐个字节进行读取。

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

file.read([size])

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

    举个例子,首先创建一个名为 my_file.txt 的文本文件,其内容为:

Python教程
https://www.php.cn/course/list/30.html

    然后在和 my_file.txt 同目录下,创建一个 file.py 文件,并编写如下语句:

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

    程序执行结果为:

Python教程
https://www.php.cn/course/list/30.html

    注意,当操作文件结束后,必须调用 close() 函数手动将打开的文件进行关闭,这样可以避免程序发生不必要的错误。

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

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

    程序执行结果为:

Python

    显然,该程序中的 read() 函数只读取了 my_file 文件开头的 6 个字符。

    再次强调,size 表示的是一次最多可读取的字符(或字节)数,因此,即便设置的 size 大于文件中存储的字符(字节)数,read() 函数也不会报错,它只会读取文件中所有的数据。

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

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

    程序执行结果为:

b'Python\xe6\x95\x99\xe7\xa8\x8b\r\nhttps://www.php.cn/course/list/30.html'

    可以看到,输出的数据为 bytes 字节串。我们可以调用 decode() 方法,将其转换成我们认识的字符串。

    Python readline()函数

    readline() 函数用于读取文件中的一行,包含最后的换行符“\n”。此函数的基本语法格式为:

file.readline([size])

    其中,file 为打开的文件对象;size 为可选参数,用于指定读取每一行时,一次最多读取的字符(字节)数。

    和 read() 函数一样,此函数成功读取文件数据的前提是,使用 open() 函数指定打开文件的模式必须为可读模式(包括 r、rb、r+、rb+ 4 种)。

    下面程序演示了 readline() 函数的具体用法:

f = open("my_file.txt")
#读取一行数据
byt = f.readline()
print(byt)

    程序执行结果为:

Python教程

    由于 readline() 函数在读取文件中一行的内容时,会读取最后的换行符“\n”,再加上 print() 函数输出内容时默认会换行,所以输出结果中会看到多出了一个空行。

    不仅如此,在逐行读取时,还可以限制最多可以读取的字符(字节)数,例如:

#以二进制形式打开指定文件
f = open("my_file.txt",'rb')
byt = f.readline(6)
print(byt)

    运行结果为:

b'Python'

    和上一个例子的输出结果相比,由于这里没有完整读取一行的数据,因此不会读取到换行符。

    Python readlines()函数

    readlines() 函数用于读取文件中的所有行,它和调用不指定 size 参数的 read() 函数类似,只不过该函数返回是一个字符串列表,其中每个元素为文件中的一行内容。

    和 readline() 函数一样,readlines() 函数在读取每一行时,会连同行尾的换行符一块读取。

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

file.readlines()

    其中,file 为打开的文件对象。和 read()、readline() 函数一样,它要求打开文件的模式必须为可读模式(包括 r、rb、r+、rb+ 4 种)。

    举个例子:

f = open("my_file.txt",'rb')
byt = f.readlines()
print(byt)

    运行结果为:

[b'Python\xbd\xcc\xb3\xcc\r\n', b'https://www.php.cn/course/list/30.html']

    关于Python读取txt文件的方法就介绍到这,上述示例具有一定的借鉴价值,对大家学习read() 函数、readline() 函数和readlines() 函数这几个函数的使用也有帮助,感兴趣的朋友可以参考。最后,想要了解更多python的内容,大家可以关注其它的相关文章。

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。

相关信息推荐
2022-06-08 17:34:07 
摘要:下面由golang教程栏目给大家介绍 Go 并发编程之 Mutex,希望对需要的朋友有所帮助!我们比较常见的大型项目的设计中都会出现并发访问问题,并发就是为了解决数据的准确性...
2022-07-11 17:49:27 
摘要:php中使用is_array检测空数组能通过。is_array()函数的作用是检测变量是否是一个数组,语法为“is_array($var)”,只要该变量“$var”为数组类型就能通过,跟数组中是否包含值无关;如果检测的变量“$var”是数组类型,则返回TRUE,否则返回FALSE。
2022-05-18 17:58:07 
摘要:本文由go语言教程栏目给大家介绍,主题是关于go defer的学习使用,希望对需要的朋友有所帮助!
云活动
推荐内容
热门关键词
热门信息
群英网络助力开启安全的云计算之旅
立即注册,领取新人大礼包
  • 联系我们
  • 24小时售后:4006784567
  • 24小时TEL :0668-2555666
  • 售前咨询TEL:400-678-4567

  • 官方微信

    官方微信
Copyright  ©  QY  Network  Company  Ltd. All  Rights  Reserved. 2003-2019  群英网络  版权所有   茂名市群英网络有限公司
增值电信经营许可证 : B1.B2-20140078   粤ICP备09006778号
免费拨打  400-678-4567
免费拨打  400-678-4567 免费拨打 400-678-4567 或 0668-2555555
微信公众号
返回顶部
返回顶部 返回顶部