python
求大佬指点这个怎么解决Traceback (most recent call last):
File "F:\python\py\000.py", line 7, in <module>
for el in f:
UnicodeDecodeError: 'gbk' codec can't decode byte 0xaf in position 54: illegal multibyte sequence 看报错信息应该是编码的问题。
建议发完整代码,方便别人修改,不要只发报错信息 本帖最后由 Twilight6 于 2020-8-2 15:50 编辑
在你的 open 函数加上 encoding = 'UTF-8' 试试看
如果不行,那么就将你要打开的 txt 文本重新另存为下,改下编码格式即可:
https://xxx.ilovefishc.com/forum/202005/25/072650zqq1fqqmng421bqz.jpg
https://xxx.ilovefishc.com/forum/202005/25/072647nvzjv2zemvgxet5g.jpg
https://xxx.ilovefishc.com/forum/202006/22/222937li4vv400i6v44b6z.png
文件打开的时候open中添加一个参数 encoding='utf-8' zltzlt 发表于 2020-8-2 15:48
看报错信息应该是编码的问题。
建议发完整代码,方便别人修改,不要只发报错信息
f = open("F:/python/txt/lt.txt")
me=[]
it=[]
count=1
for el in f:
if el[:4] != '====':
(role, ls)=el(':',1)
if role == 'A':
me.append(ls)
if role == 'B':
it.append(ls)
else:
fnm='me_' + str(count) + '.txt'
fni='it_' + str(count) + '.txt'
mf = open(fnm,'w')
ife = open(fni,'w')
mf.writelines(me)
itf.writelines(it)
mf.close()
ife.close()
me=[]
it=[]
count += 1
f.close() 一枚丶学渣 发表于 2020-8-2 15:50
f = open("F:/python/txt/lt.txt")
me=[]
这样试试:f = open("F:/python/txt/lt.txt", encoding='utf-8')
me=[]
it=[]
count=1
for el in f:
if el[:4] != '====':
(role, ls)=el(':',1)
if role == 'A':
me.append(ls)
if role == 'B':
it.append(ls)
else:
fnm='me_' + str(count) + '.txt'
fni='it_' + str(count) + '.txt'
mf = open(fnm,'w')
ife = open(fni,'w')
mf.writelines(me)
itf.writelines(it)
mf.close()
ife.close()
me=[]
it=[]
count += 1
f.close() 本帖最后由 Twilight6 于 2020-8-2 15:55 编辑
一枚丶学渣 发表于 2020-8-2 15:50
f = open("F:/python/txt/lt.txt")
me=[]
代码里面有几个变量名打错了
还有建议你将代码中的冒号统一为英文或者中文的 冒号字符,否则还是会报错
f = open("F:/python/txt/lt.txt",encoding='utf-8')
me = []
it = []
count = 1
for el in f:
if el[:4] != '====':
(role, ls) = el.split(':', 1) # 这里根据文本中冒号来进行更改中文冒号,还是英文
if role == 'A':
me.append(ls)
if role == 'B':
it.append(ls)
else:
fnm = 'me_' + str(count) + '.txt'
fni = 'it_' + str(count) + '.txt'
mf = open(fnm, 'w',encoding='utf-8')
ife = open(fni, 'w',encoding='utf-8')
mf.writelines(me)
ife.writelines(it)
mf.close()
ife.close()
me = []
it = []
count += 1
f.close() 感谢各位大佬的帮助 一枚丶学渣 发表于 2020-8-2 15:53
感谢各位大佬的帮助
问题如果已经解决,记得设置下【最佳答案】
页:
[1]