python文件操作:read()与readlines()均可从文件读取所有数据,write()与writelines()方法均可以向文件写入多行数据,那么它们之间有哪些差异呢?
一、从文件读取所有数据:read()与readlines()方法的差异
示例文件:
read()方法读取文件所有数据:当read()方法不指定读取的字节数时,可一次将文件中所有数据读取出来
运行结果
debug调试查看读取的数据
可以看到使用read()方法读取出来的数据是一个包含了换行符(" ")的str类型字符串,每一行的换行符均包含在该字符串中
readlines()方法读取文件中所有数据
运行结果
debug调试查看读取的数据
可以看到使用readlines()方法读取出来的数据是一个字符串列表,列表中的每一个元素均是文件中的一行数据,每一个元素均包含了文件中每行的换行符(" ")
read()方法与readlines()方法读取文件所有数据时的差异:
使用read()方法读取文件所有数据,文件指针返回的是一个字符串,文件中所有行均包含在这个字符串中,而使用readlines()方法读取文件所有数据,文件指针将返回一个字符串列表(列表中所有元素均是str类型),文件指针将会把文件中的每一行内容(包含每行的换行符)存放到列表中返回。虽然两种方法均可一次读取文件中所有数据,但如果要对读取出来的数据做后续处理时,使用read()方法将不好处理读取的数据,而使用readlines()方法将会更方便。
二、向文件写入多行数据
示例:向文件写入以下两行数据(以下每行数据均是str类型)
write()方法写入多行数据:要写入的数据中包含每一行中的换行符时,可以实现与writelines()方法向文件写入多行数据
debug查看写入的数据
写入结果
从结果可以看出,若要使用write()方法实现向文件写入多行数据,要么先把所有行数据带上换行符后再拼接成一个字符串一次性写入,另一种方法是使用for循环遍历一行一行写入,但无论使用哪种方法,write()方法内的参数都必须是str类型数据
writelines()方法写入多行数据
运行结果
写入结果
从结果可以看出,使用writelines()方法可以一次向文件写入多行数据,且writelines()方法内的参数可以是一个字符串列表,也可以是一个字符串(若不包含换行符则只写入到一行中,若包含换行符则将写入多行),且列表中每个字符串元素均带有换行符,列表中每一个元素被视为一行数据写入到文件中
write()方法与writelines()方法写入多行数据总结:
使用write()与writelines()方法均可向文件写入多行数据,不同的是:write()方法必须传递的是一个字符串参数,而使用writelines()方法可传递一个字符串参数 或 一个字符串列表;即:使用read()方法读出来的数据可通过write()方法与writelines()方法写入至文件,则使用readlines()方法读取出来的数据只能使用writelines()方法写入至文件