|
7鱼币
- file_name1 = input('请输入比较的第一个文件名:')
- file_name2 = input('请输入比较的第二个文件名:')
- temp1 = 'D:\\' + file_name1 + '.txt'
- temp2 = 'D:\\' + file_name2 + '.txt'
- f = open(temp1)
- d = open(temp2)
- count = 0
- differ = []
- for line1 in f:
- line2 = d.readline()
- count += 1
- if line2 != line1:
- differ.append(count)
- print ('一共有%d处不同' %len(differ))
- for each in differ:
- print ('第%d行不同' %each)
- f.close()
- d.close()
复制代码
问题的主要原因是,你的系统的编码格式是 gbk
但是你的 txt 文件的编码格式非 gbk,一般是 utf-8
当你没有设定编码格式时,会默认为使用系统自身的编码格式,即你这里的 gbk
gbk 自然不能读取你 txt 里面的 utf-8 的数据,就会报错
两种解决方案,
- 原 txt 文件改成 gbk 格式,但是这种值针对于允许修改原 txt 文件的情况
- 如果原文件不允许修改的情况下,在 open 文件的时候,给定你所需要使用的编码格式,即 txt 文件的编码格式 (此处应该是 utf-8 格式,看不到你的文件编码格式,所以只能猜测)
|
最佳答案
查看完整内容
问题的主要原因是,你的系统的编码格式是 gbk
但是你的 txt 文件的编码格式非 gbk,一般是 utf-8
当你没有设定编码格式时,会默认为使用系统自身的编码格式,即你这里的 gbk
gbk 自然不能读取你 txt 里面的 utf-8 的数据,就会报错
两种解决方案,
- 原 txt 文件改成 gbk 格式,但是这种值针对于允许修改原 txt 文件的情况
- 如果原文件不允许修改的情况下,在 open 文件的时候,给定你所需要使用的编码格式,即 txt 文件的 ...
|