Python模块和包
12 Python文件操作(I/O)
12.1 什么是文件路径,Python中如何书写文件路径?
12.2 Python绝对路径和相对路径
12.3 Python文件基本操作
12.4 Python open
12.5 以文本格式和二进制格式打开文件,到底有什么区别?
12.6 Python read
12.7 Python readline()和readlines()
12.8 Python write和writelines
12.9 Python close
12.10 Python seek和tell
12.11 Python with as
12.12 什么是上下文管理器,深入底层了解Python with as语句
12.13 Python pickle模块
12.14 Python fileinput模块:逐行读取多个文件
12.15 Python linecache模块用法:随机读取文件指定行
12.16 Python pathlib模块
12.17 Python os.path模块
12.18 Python fnmatch模块
12.19 Python使用os模块操作文件和目录
12.20 Python tempfile模块:生成临时文件和临时目录
前面章节中讲到,如果想读取用 open() 函数打开的文件中的内容,除了可以使用 read() 函数,还可以使用 readline() 和 readlines() 函数。
和 read() 函数不同,这 2 个函数都以“行”作为读取单位,即每次都读取目标文件中的一行。对于读取以文本格式打开的文件,读取一行很好理解;对于读取以二进制格式打开的文件,它们会以“\n”作为读取一行的标志。
Python readline()函数 readline() 函数用于读取文件中的一行,包含最后的换行符“\n”。此函数的基本语法格式为: file.readline([size])

其中,file 为打开的文件对象;size 为可选参数,用于指定读取每一行时,一次最多读取的字符(字节)数。
和 read() 函数一样,此函数成功读取文件数据的前提是,使用 open() 函数指定打开文件的模式必须为可读模式(包括 r、rb、r+、rb+ 4 种)。

仍以前面章节中创建的 my_file.txt 文件为例,该文件中有如下 2 行数据: Python教程
http://c.biancheng.net/python/

下面程序演示了 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'http://c.biancheng.net/python/']

关注公众号「 站长严长生 」,在手机上阅读所有教程,随时随地都能学习。本公众号由 C语言中文网站长 亲自运营,长期更新,坚持原创。

微信扫码关注公众号
  • LNMP安装php扩展模块(eAccelerator、xCache、memcached、imageMagick和ionCube)
  • Docker镜像(image)详解
  • 双向线索二叉树详解(包含C语言实现代码)
  • 插入排序算法及C语言实现
  • Python创建包,导入包(入门必读)
  • Python __new__()方法详解
  • JS scrollTo()方法:设置滚动条位置
  • C++ STL基本组成(6大组件+13个头文件)
  • Linux懒人神器:命令自动补全功能!
  • 如何用VS Code运行C和C++程序?
  •