文件能够使用open( )
函数打开的原因是,这个文件对象是可迭代的。使用for
循环可以将文件的内容读取。
1.read( )函数
文件对象的read( )
方法,其参数是size,即读取的字符数量。如果不指定size,则默认读取与文件内容数量相同的字符数量。
f = open("test.txt")
f.read(10)
This is a g
上述代码指定读取文件对象中的10个字符,即前10个,包括空格。
f.read()
ood boy.
上述代码之所以输出的内容为文件对象的一部分,其原因为我们首先利用read( )
函数读取了其前10个字符。所以在未指定size的情况下,会将剩余的字符打印出来。
2. readline( )函数
f = open( "test.txt")
f.readline()
f.readline()
f.readline()
This is a good boy.
Python is a good language
该函数从文本对象中逐行读取。运行一次该函数,读取一行文本内容。当文本内容读取结束后,继续运行该函数不会报错,会返回一个空的字符串。
同样地,如果给该函数size
参数,则其也会读取相应行的size个字符。
3. readlines( )函数
f = open("test.txt")
f.readlines()
['This is a good boy. \n','Python is a good language']
以上代码从文件中读取文本内容并将其赋值给变量f
,对该变量使用readlines()
函数。可以发现该函数返回的是列表,列表中的每个元素对应着文本中的相应行。
既然返回对象是列表,那么就可以使用各种循环语句进行迭代。
f = open("test.txt")
for line in f.readlines():
print(line)
This is a good boy.
Python is a good language.
4. 三者的异同点
相同点:这三个函数都是python自带的读取文件的函数,都能够将文本对象赋值给某个变量。
不同点:
readline( )
函数是即用即读取,即读取文件内容的一部分到内存中。
read( )/readlines( )
函数是一次性将文件内容读取到内存中储存为列表形式。