我们刚刚已经学习了file.read()这语法格式:
file:文件对象
size:读取的字符串个数
例如:
with open("/data/poetry.txt","r",encoding='utf-8') as file:
hehe=file.read(6)
print(hehe)
运行这段代码便会输出: "轻轻的我走了" #6个汉字
file:文件对象
offset:用于指定移动的字符个数
whence:0表示从文件头开始,1表示从当前位置开始,2表示从文件尾开始。默认为0。
这里需要注意:
在utf-8编码情况下,offset的数值3相当于取一个汉字位置(包括汉字标点符号)
如果是GBK编码,offset数值2相当于取一个汉字字符位置
但是,read()里面参数,一个数值相当于一个汉字字符。
例如:
with open("/data/poetry.txt","r",encoding='utf-8') as file:
file.seek(22) #文件开头偏移7个汉字,7*3=21,加上“\n”就是23
hehe=file.read(7)
print(hehe)
运行这段代码便会输出: '\n正如我轻轻的'
和read没有参数时一样,readlines可以按照行的方式把整个文件中的内容进行一次性读取,并且返回的是一个列表,其中每一行的数据为一个元素
例如:
with open("/data/poetry.txt","r",encoding='utf-8') as file:
hehe=file.readlines()
print(hehe)
运行这段代码便会输出:
['轻轻的我走了,\n',
'正如我轻轻的来;\n',
'我轻轻的招手,\n',
'作别西天的云彩。\n',
'\n',
'那河畔的金柳,\n',
'是夕阳中的新娘;\n',
'波光里的艳影,\n',
'在我的心头荡漾。\n' ]
因此,可以用for循环逐行读取字符串列表。 尝试在右边代码框完成以下操作: 将上面列表中的元素读取出来,并按行打印。