recA 发表于 2018-5-22 17:30:54

Python打开文件相关问题求助

求助:
Python小白,今天在看 ‘小甲鱼’ 的视频学习文件打开的时候遇到问题,求大神指导0.0

打开文件没有问题,读取一行文字没有问题, f.seek(45,0)设置指针没有问题,指针设置之后再读取一行文字报错。我理解的报错内容是编码出错,但打开文件,读取文件没有问题,修改指针后报错什么鬼啊...

>>> f = open('C:\\Users\\Ares\\Desktop\\Pythin\\文件.txt')
>>> f.read(6)
'全国生态环境'
>>> f.readline()
'保护大会18日至19日在北京召开。习近平总书记指出,生态文明建设是关系中华民族永续发展的根本大计。生态兴则文明兴,生态衰则文明衰。十八大以来,习近平总书记对生态环境保护和生态文明建设的讲话、论述和批示、指示达300余次!\n'
>>> f.seek(45,0)
45
>>> f.readline()
Traceback (most recent call last):
File "<pyshell#130>", line 1, in <module>
    f.readline()
UnicodeDecodeError: 'gbk' codec can't decode byte 0xfc in position 0: illegal multibyte sequence

ba21 发表于 2018-5-22 19:19:54

fileObject.seek(offset[, whence])
参数
offset -- 开始的偏移量,也就是代表需要移动偏移的字节数
注意是以字节为单位的。
换句话说
1:一般用来操作2进制文件rb
2:文件文件r;就不要把1个中文拆开了。
如下:
>>> f.read(6)
'pyqt5 '
>>> f.readline()
'安装\n'
>>> f.readline()
'直接:pip install pyqt5\n'
>>> f.seek(2,0)
2
>>> f.readline()
'qt5 安装\n'
>>> f.seek(5,0)
5
>>> f.readline()
' 安装\n'
>>> f.seek(7,0) #"pyqt5 安装" 这里把安 1分为2 肯定识别不了,出错是肯定的
7
>>> f.readline()
Traceback (most recent call last):
File "<pyshell#11>", line 1, in <module>
    f.readline()
UnicodeDecodeError: 'gbk' codec can't decode byte 0xb0 in position 2: illegal multibyte sequence

recA 发表于 2018-5-22 19:28:27

ba21 发表于 2018-5-22 19:19
fileObject.seek(offset[, whence])
参数
offset -- 开始的偏移量,也就是代表需要移动偏移的字节数


谢谢回答,恍然大悟
页: [1]
查看完整版本: Python打开文件相关问题求助