python第29课:一个任务——课后作业1
请教一个问题:这是标准答案:
def file_compare(file1, file2):
f1 = open(file1)
f2 = open(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)
这个两个文件对比哪里不同的程序。我把标准答案的代码拷贝下来,粘贴到IDLE上,为了运行,我在自己的程序文件夹里徒手制作两个文本文件分别取名为:something 和something2。
然后再两份文件里随便打些东西。
然后操作程序,运行。
运行后,第一行让我输入第一个对比文件的名字。我输入:something。回车
下行问我,输入另一个文件的名字。我输入:something2
然后报错是这个:
Traceback (most recent call last):
File "E:/Python/程序集/文件对比/文件对比.py", line 20, in <module>
differ = file_compare(file1, file2)
File "E:/Python/程序集/文件对比/文件对比.py", line 2, in file_compare
f1 = open(file1)
FileNotFoundError: No such file or directory: 'somehing'
顺便问一下,怎么上传图片?
1,
如何正确地发代码、上传图片和附件?
https://fishc.com.cn/thread-52272-1-1.html
(出处: 鱼C论坛)
2,要输入完整,不要输入 something 而是 something.txt 本帖最后由 qiuyouzhi 于 2020-7-2 19:41 编辑
这个报错是找不到 something 这个文件,一般文件也要带上后缀
把你需要比较的文件,放到和代码同一个目录下,或者复制完整的路径,比如说:C:\test\somehing.txt
如何正确地发代码、上传图片和附件?
https://fishc.com.cn/thread-52272-1-1.html
(出处: 鱼C论坛)
多谢学长,这次好使了。
不过还有一个问题:如果文件里是中文,它还会报错。在前一个作业里,我可以用:
f = open("E:\\filename.txt', encoding = 'utf-8')
但在这个程序里,就没有给我输入:encoding = 'utf-8'的地方了。
有办法解决吗?
def file_compare(file1, file2):
f1 = open(file1)
f2 = open(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 #differ是一个数字列表:如果differ = ,
#则len(differ)就等于4,表示列表中有四项,也就是四处不同。
file1 = input('请输入需要比较的头一个文件名:') #输入文件时要输入全部路径E:\...\什么的
file2 = input('请输入需要比较的另一个文件名:') #如果是中文,encoding也要考虑到
differ = file_compare(file1, file2)
if len(differ) == 0:
print('两个文件完全一样!')
else:
print('两个文件共有【%d】处不同:' % len(differ))
for each in differ:
print('第 %d 行不一样' % each) mhou022 发表于 2020-7-2 19:19
多谢学长,这次好使了。
不过还有一个问题:如果文件里是中文,它还会报错。在前一个作业里,我可以用: ...
f1 = open(file1, encoding = 'utf-8')
f2 = open(file2, encoding = 'utf-8')
如果对你有帮助,那就设成【最佳答案】把 mhou022 发表于 2020-7-2 19:19
多谢学长,这次好使了。
不过还有一个问题:如果文件里是中文,它还会报错。在前一个作业里,我可以用: ...
你可以改下 txt 编码 为 ANSI 就可以不用加 encoding='utf-8' 了,如果嫌麻烦就加下吧 ~
第一步:
https://xxx.ilovefishc.com/forum/202005/25/072650zqq1fqqmng421bqz.jpg
第二步:
https://xxx.ilovefishc.com/forum/202005/25/072647nvzjv2zemvgxet5g.jpg
第三步,选择第一个ANSI编码:
https://xxx.ilovefishc.com/forum/202006/22/222937li4vv400i6v44b6z.png
多谢学长!辛苦了
页:
[1]