文件的读取并输出
file=open('one1.txt','rb')file.seek(2)
print(file.readlines())
file.close()
one1.txt是:
中国
美丽
地广
执行完程序输出这样的结果,都是十六进制的吧,为啥呀?怎样才能输出原来文件的内容啊?
open 参数2 不是六进制,是二进制
你的打开方式是'rb' 其中'r'指的是read 读取,'b'指的是bin 二进制
这里修改成
file=open('one1.txt','r')
file.seek(2)
print(file.readlines())
file.close() 逃兵 发表于 2021-4-28 13:28
不是六进制,是二进制
你的打开方式是'rb' 其中'r'指的是read 读取,'b'指的是bin 二进制
这里修改成
Traceback (most recent call last):
File "D:/Python/newjobbeginning/chap15/demon4.py", line 19, in <module>
print(file.readlines())
UnicodeDecodeError: 'gbk' codec can't decode byte 0xbd in position 6: illegal multibyte sequence
修改后直接报错了,啥原因啊? 文本不用b,encoding修改默认编码方式,
file=open('one1.txt','r', encoding='utf-8')
print(file.readlines())
file.close()
suchocolate 发表于 2021-4-28 13:37
文本不用b,encoding修改默认编码方式,
Traceback (most recent call last):
File "D:/Python/newjobbeginning/chap15/demon4.py", line 19, in <module>
print(file.readlines())
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python38\lib\codecs.py", line 322, in decode
(result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xbf in position 0: invalid start byte
修改后,报错了,什么原因啊 ? ba21 发表于 2021-4-28 13:21
open 参数2
啥意思啊? 江湖散人 发表于 2021-4-28 13:42
Traceback (most recent call last):
File "D:/Python/newjobbeginning/chap15/demon4.py", line 19,...
你的txt什么编码格式,用记事本打开看看右下角有标识的。 江湖散人 发表于 2021-4-28 13:34
Traceback (most recent call last):
File "D:/Python/newjobbeginning/chap15/demon4.py", line 19,...
文本编码问题
这里涉及open函数的encoding编码参数
默认使用'gbk'解码
报错内容:
UnicodeDecodeError:'gbk'编解码器无法解码位置6的字节0xbd:非法的多字节序列
这里尝试改一下utf-8编码
大部分中文文档都可以用utf-8
file=open('one1.txt','r',encoding='utf-8') 逃兵 发表于 2021-4-28 13:45
文本编码问题
这里涉及open函数的encoding编码参数
默认使用'gbk'解码
不行,刚才楼上的也告诉用这样的,但是结果还是报错了。
suchocolate 发表于 2021-4-28 13:44
你的txt什么编码格式,用记事本打开看看右下角有标识的。
这个是utf-8的格式 本帖最后由 suchocolate 于 2021-4-28 13:56 编辑
江湖散人 发表于 2021-4-28 13:53
这个是utf-8的格式
把你现在的代码发上来吧。 重新生成个txt,另存为,选择utf-8编码,再读取 suchocolate 发表于 2021-4-28 13:54
把你现在的代码发上来吧。
file=open('one1.txt','r',encoding='utf-8')
file.seek(2)
print(file.readlines())
file.close() suchocolate 发表于 2021-4-28 13:54
把你现在的代码发上来吧。
file=open('one1.txt','r',encoding='utf-8')
file.seek(2)
print(file.readlines())
file.close() 本帖最后由 suchocolate 于 2021-4-28 14:23 编辑
江湖散人 发表于 2021-4-28 14:16
file=open('one1.txt','r',encoding='utf-8')
file.seek(2)
print(file.readlines())
把seek去掉。
读二进制文件的话能够准确知道字节数,文本文件时不好判断飘逸到哪里了,并不代表字数。 suchocolate 发表于 2021-4-28 14:18
把seek去掉
['\ufeff中国\n', '美丽\n', '地广']
去掉后就是这样的结果,前边还多了几个字母。咋去掉嗯?
这个程序就是想练练这个seek的用法的。 江湖散人 发表于 2021-4-28 14:21
['%ufeff中国\n', '美丽\n', '地广']
去掉后就是这样的结果,前边还多了几个字母。咋去掉嗯?
这个程序 ...
练习seek看这个:https://www.runoob.com/python3/python3-file-seek.html
你这标题大家以为你在练习读取文本文件。 suchocolate 发表于 2021-4-28 14:26
练习seek看这个:https://www.runoob.com/python3/python3-file-seek.html
你这标题大家以为你在练习读 ...
好的,谢谢啊
页:
[1]