一:编码问题。
我有一个文本:
我爱你
爱死你
你玩我
然后我:
file=open('test','r+',encoding='gbk')
报错:
UnicodeDecodeError: 'gbk' codec can't decode byte 0xa0 in position 8: illegal multibyte sequence
因为:
我的文本用的是utf-8编码,用gbk当然出错了。
哎,那我不写这些行不?直接:
file=open('test','r+')
还是报同样的错误,为什么呢?这是因为windows默认的是gbk编码啊。所以一定要加encoding='utf-8'.
二:文件指针问题。
一开始:
file=open('test','r+',encoding='utf-8')
information=file.read()
print(information)
print(type(information))
#file.seek(0,0)
line=file.readline()
print(line)
print(type(line))
#file.seek(0,0)
lines=file.readlines()
print(lines)
print(type(lines))
file.close()
我爱你
爱死你
你玩我
<class 'str'>
<class 'str'>
[]
<class 'list'>
没有加上file.seek()的话,后面的readline和readlines什么都没有。
这是因为在第一个read()之后,光标移到了文件的末尾,再继续读下去当然什么也没有啦!因此我用seek(0,0)来转到文件开头。
关于seek的用法看我的另一篇文章:https://blog.csdn.net/weixin_45850939/article/details/105214665