鱼C论坛

 找回密码
 立即注册
查看: 2546|回复: 6

为啥直接复制代码还会出错

[复制链接]
发表于 2020-12-10 13:02:39 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
请输入需要比较的头一个文件名:config.txt
请输入需要比较的另一个文件名:first.txt
Traceback (most recent call last):
  File "D:/新建文件夹 (2)/duibi.py", line 20, in <module>
    differ = file_compare(file1, file2)
  File "D:/新建文件夹 (2)/duibi.py", line 7, in file_compare
    for line1 in f1:
UnicodeDecodeError: 'gbk' codec can't decode byte 0x81 in position 30: illegal multibyte sequence



这是代码
def file_compare(file1, file2):
    f1 = open('D:\\'+file1)
    f2 = open('D:\\'+file2)
    count = 0 # 统计行数
    differ = [] # 统计不一样的数量

    for line1 in f1:
        line2 = f2.readline()
        count += 1
        if line1 != line2:
            differ.append(count)

    f1.close()
    f2.close()
    return differ

file1 = input('请输入需要比较的头一个文件名:')
file2 = input('请输入需要比较的另一个文件名:')

differ = file_compare(file1, file2)

if len(differ) == 0:
    print('两个文件完全一样!')
else:
    print('两个文件共有【%d】处不同:' % len(differ))
    for each in differ:
        print('第 %d 行不一样' % each)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-12-10 13:04:17 From FishC Mobile | 显示全部楼层
更改open函数的编码参数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-12-10 15:21:37 | 显示全部楼层
大佬,怎么改
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-12-10 15:22:20 | 显示全部楼层
昨非 发表于 2020-12-10 13:04
更改open函数的编码参数

大佬,怎么改
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-12-10 15:24:17 From FishC Mobile | 显示全部楼层
lomo_mo 发表于 2020-12-10 15:22
大佬,怎么改

f=open(路径,encoding="UTF-8")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-12-10 15:30:35 | 显示全部楼层
昨非 发表于 2020-12-10 15:24
f=open(路径,encoding="UTF-8")

请输入需要比较的头一个文件名:config.txt
请输入需要比较的另一个文件名:first.txt
Traceback (most recent call last):
  File "D:/新建文件夹 (2)/dui.py", line 20, in <module>
    differ = file_compare(file1, file2)
  File "D:/新建文件夹 (2)/dui.py", line 8, in file_compare
    line2 = f2.readline()
  File "D:\新建文件夹 (2)\lib\codecs.py", line 322, in decode
    (result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc4 in position 0: invalid continuation byte


我UTF-8是大写的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-12-25 00:15:46 | 显示全部楼层
lomo_mo 发表于 2020-12-10 15:30
请输入需要比较的头一个文件名:config.txt
请输入需要比较的另一个文件名:first.txt
Traceback (most ...

这个大小写一般不影响,你的文件用的可能是其他编码方式
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-17 00:46

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表