黄jz 发表于 2020-7-25 12:04:06

异常代码不知道怎么解决

请输入需要比较的头一个文件名:C:\\Users\\DRD\\Desktop\\something.txt
请输入需要比较的另一个文件名:C:\\Users\\DRD\\Desktop\\something1.txt
Traceback (most recent call last):
File "G:/新建文件夹 (4)/21.py", line 7, in <module>
    list2=list(f1)
UnicodeDecodeError: 'gbk' codec can't decode byte 0x80 in position 26: illegal multibyte sequence

_2_ 发表于 2020-7-25 12:05:11

把源码发上来

zltzlt 发表于 2020-7-25 12:06:51

发代码

Twilight6 发表于 2020-7-25 12:10:51



代码中的 open 里都加上参数 encoding = 'UTF-8' 试试看

下次问问题记得发完整代码

黄jz 发表于 2020-7-25 12:47:40

list1=[]
count1=0
name1=input("请输入需要比较的头一个文件名:")
name2=input("请输入需要比较的另一个文件名:")
f1=open(name1,'r')
f2=open(name2,'r')
list2=list(f1)
list3=list(f2)
len2=len(list2)
len3=len(list3)
if len2<len3:
    for i in range(len2):
      if list2 != list3:
            i=i+1
            list1.append(i)
            count1=count1+1
if len3<len2:
    for i in range(len3):
      if list2 != list3:
            i=i+1
            list1.append(i)
            count1=count1+1
if len3==len2:
    for i in range(len3):
      if list2 != list3:
            i=i+1
            list1.append(i)
            count1=count1+1
print("两个文件共有【",count1,"】处不同")
for i in list1:
    print("第",i,"行不一样")
f1.close()
f2.close()

Twilight6 发表于 2020-7-25 12:53:44

黄jz 发表于 2020-7-25 12:47
list1=[]
count1=0
name1=input("请输入需要比较的头一个文件名:")




代码改成这样试试运行:


list1=[]
count1=0
name1=input("请输入需要比较的头一个文件名:")
name2=input("请输入需要比较的另一个文件名:")
f1=open(name1,encoding='utf-8')
f2=open(name2,encoding='utf-8')
list2=list(f1)
list3=list(f2)
len2=len(list2)
len3=len(list3)
if len2<len3:
    for i in range(len2):
      if list2 != list3:
            i=i+1
            list1.append(i)
            count1=count1+1
if len3<len2:
    for i in range(len3):
      if list2 != list3:
            i=i+1
            list1.append(i)
            count1=count1+1
if len3==len2:
    for i in range(len3):
      if list2 != list3:
            i=i+1
            list1.append(i)
            count1=count1+1
print("两个文件共有【",count1,"】处不同")
for i in list1:
    print("第",i,"行不一样")
f1.close()
f2.close()

如果运行还是报错,那么把这个代码文件和你重新新建一个文件夹,放一起

然后将你需要比较的文本重新另存为,按照下面的操作来:

第一步,打开 txt 文件选择另存为:
https://xxx.ilovefishc.com/forum/202005/25/072650zqq1fqqmng421bqz.jpg

第二步设置编码为 utf-8:
https://xxx.ilovefishc.com/forum/202005/25/072647nvzjv2zemvgxet5g.jpg

然后重新运行代码,这样就不会报错了



黄jz 发表于 2020-7-25 12:59:47

Twilight6 发表于 2020-7-25 12:53
代码改成这样试试运行:




问题解决了,谢谢,但是我想问一下为什么会出现这样的问题

Twilight6 发表于 2020-7-25 13:01:46

黄jz 发表于 2020-7-25 12:59
问题解决了,谢谢,但是我想问一下为什么会出现这样的问题



编码问题,不同编码,编码汉字的字节不同

当你 open 编码和 文件编码不一致时候,Python 读取文件内容时候解码字节长度不同就会导致报错

黄jz 发表于 2020-7-25 13:02:38

Twilight6 发表于 2020-7-25 13:01
编码问题,不同编码,编码汉字的字节不同

当你 open 编码和 文件编码不一致时候,Python 读取文件 ...

ok,谢谢

黄jz 发表于 2020-7-25 13:06:04

Twilight6 发表于 2020-7-25 13:01
编码问题,不同编码,编码汉字的字节不同

当你 open 编码和 文件编码不一致时候,Python 读取文件 ...

我之前重置过一次电脑,现在复制小甲鱼给出的答案代码运行也会出现这样的问题,是重置了系统的原因吗
页: [1]
查看完整版本: 异常代码不知道怎么解决