鱼C论坛

 找回密码
 立即注册
查看: 3931|回复: 24

比较两个文档各行哪几行不同的作业题:

[复制链接]
发表于 2016-10-15 21:16:24 | 显示全部楼层 |阅读模式
20鱼币
file_name1=input('输入其中一个文件的名字:')
file_name2=input('输入另外一个文件的名字:')
a=open(file_name1)
b=open(file_name2)
differ=0
count=0
for line1 in a:
    line2=b.readline()
    if line1!=line2:
        print('第'+count+'行有不同')
        count=count+1
        differ=differ+1
    else:
        count=count+1
a.close()#关闭文件
b.close()#关闭文件
print('共有'+differ+'处不同')
=============================================================================
为什么出现了以下文字?????????????????????????????????????????????????。

>>>请输入需要比较的头一个文件名:a.txt

Traceback (most recent call last):
  File "E:\python\练习题\29课课后题TXT\比较不同\比较答案版.py", line 17, in <module>
    file1 = input('请输入需要比较的头一个文件名:')
  File "<string>", line 1, in <module>
NameError: name 'a' is not defined
===========================================================================================
还有,我将py文件和这两个txt文件保存在一个文件夹里,
我打代码:
>>>file_name1=input('输入其中一个文件的名字:')
>>>file_name2=input('输入另外一个文件的名字:')
>>>a=open(file_name1)
>>>b=open(file_name2)
>>>print(a.read())
>>>print(b.read())
=============================================================================================
为什么出现了以下文字????????????????????????????????

>>>输入其中一个文件的名字:a.txt

Traceback (most recent call last):
  File "E:\python\练习题\29课课后题TXT\比较不同\比较两个文件有何不同.py", line 2, in <module>
    file_name1=input('输入其中一个文件的名字:')
  File "<string>", line 1, in <module>
NameError: name 'a' is not defined

最佳答案

查看完整内容

稍微修改了一下。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-10-15 21:16:25 | 显示全部楼层
gmz0821 发表于 2016-10-15 23:07
程序:
# -*- coding: cp936 -*-
#文件名记得加打开放式

稍微修改了一下。
  1. file_name1=input('输入其中一个文件的名字:')
  2. file_name2=input('输入另外一个文件的名字:')
  3. word1=open(file_name1)             #变量的名字
  4. word2=open(file_name2)
  5. differ=0
  6. count=0
  7. for line1 in word1:
  8.     line2=word2.readline()
  9.     if line1!=line2:
  10.         print('第',count,'行有不同')
  11.         count=count+1
  12.         differ=differ+1
  13.     else:
  14.         count=count+1
  15. word1.close()#关闭文件
  16. word2.close()#关闭文件
  17. print('共有',differ,'处不同')
复制代码

  1. 输入其中一个文件的名字:1.txt
  2. 输入另外一个文件的名字:text.txt
  3. 第 0 行有不同
  4. 第 1 行有不同
  5. 第 2 行有不同
  6. 第 3 行有不同
  7. 第 4 行有不同
  8. 第 5 行有不同
  9. 第 6 行有不同
  10. 第 7 行有不同
  11. 第 8 行有不同
  12. 共有 9 处不同
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-10-15 21:26:11 | 显示全部楼层
我的两个文件分别叫a.txt  和b.txt  和py文件放在一个文件夹里
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-10-15 22:07:04 | 显示全部楼层
有什么意见帮忙提提!谢谢!!卡在这好久了,前边也遇到类似情况,时而好使,时而不好使。。。。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-10-15 22:23:45 | 显示全部楼层
把完整的程序发上来,我看运行的提示与程序不一致。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-10-15 22:24:32 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-10-15 22:42:35 | 显示全部楼层
冬雪雪冬 发表于 2016-10-15 22:23
把完整的程序发上来,我看运行的提示与程序不一致。

# -*- coding: cp936 -*-
#文件名记得加打开放式
file_name1=input('输入其中一个文件的名字:')
file_name2=input('输入另外一个文件的名字:')
word1=open(file_name1,'w')             #变量的名字
word2=open(file_name2,'w')
differ=0
count=0
for line1 in word1:
    line2=word2.readline()
    if line1!=line2:
        print('第'+count+'行有不同')
        count=count+1
        differ=differ+1
    else:
        count=count+1
a.close()#关闭文件
b.close()#关闭文件
print('共有'+differ+'处不同')


=================================================
谢谢爸爸
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-10-15 22:54:39 | 显示全部楼层
gmz0821 发表于 2016-10-15 22:42
# -*- coding: cp936 -*-
#文件名记得加打开放式
file_name1=input('输入其中一个文件的名字:')

你是读取文件查看不同,不应该用写入模式'w'
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-10-15 22:56:18 | 显示全部楼层
gmz0821 发表于 2016-10-15 22:42
# -*- coding: cp936 -*-
#文件名记得加打开放式
file_name1=input('输入其中一个文件的名字:')

前面是word1 word2,关闭时是a和b
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-10-15 22:57:12 | 显示全部楼层
冬雪雪冬 发表于 2016-10-15 22:23
把完整的程序发上来,我看运行的提示与程序不一致。

我的py文件和a.txt、b.txt在同一个文件夹下。但是就是调不出来文件,之前也遇到类似的情况,昨天神奇般的好了,今天有不好使了。。。。。。我已经要崩溃了。。。。。。。让我一度以为我的py坏了
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-10-15 23:03:17 | 显示全部楼层
冬雪雪冬 发表于 2016-10-15 22:54
你是读取文件查看不同,不应该用写入模式'w'

之前吧,没加,我是实在没办法了就东加加,西凑凑的。
后面的word也是,我怀疑是和a=open(file_name1)和a.txt的啊重复了才改的,【虽然知道没关系。。。。
感谢您!!!!帮我看看!!
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-10-15 23:07:14 | 显示全部楼层
冬雪雪冬 发表于 2016-10-15 22:56
前面是word1 word2,关闭时是a和b

程序:
# -*- coding: cp936 -*-
#文件名记得加打开放式
file_name1=input('输入其中一个文件的名字:')
file_name2=input('输入另外一个文件的名字:')
word1=open(file_name1)             #变量的名字
word2=open(file_name2)
differ=0
count=0
for line1 in word1:
    line2=word2.readline()
    if line1!=line2:
        print('第'+count+'行有不同')
        count=count+1
        differ=differ+1
    else:
        count=count+1
a.word1()#关闭文件
b.word2()#关闭文件
print('共有'+differ+'处不同')
===========================================
结果:输入其中一个文件的名字:a.txt

Traceback (most recent call last):
  File "E:\python\练习题\29课课后题TXT\比较不同\比较两个文件有何不同.py", line 3, in <module>
    file_name1=input('输入其中一个文件的名字:')
  File "<string>", line 1, in <module>
NameError: name 'a' is not defined
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-10-15 23:17:01 | 显示全部楼层
冬雪雪冬 发表于 2016-10-15 22:23
把完整的程序发上来,我看运行的提示与程序不一致。

这是图片
捕获.PNG
捕获111.PNG
捕获22222.PNG
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-10-15 23:23:34 | 显示全部楼层

亲,你看看,一样的程序,我的跑不起来

捕获.PNG
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-10-15 23:47:07 | 显示全部楼层
冬雪雪冬 发表于 2016-10-15 22:23
把完整的程序发上来,我看运行的提示与程序不一致。

亲,您看,我的跑不起来,是不是保存程序还是程序本身出了啥问题
232402ityugil3k7xu7g1l.png
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-10-15 23:49:28 | 显示全部楼层
本帖最后由 冬雪雪冬 于 2016-10-15 23:53 编辑

python2把input改为raw_input
另建议使用python3.x版,小甲鱼的课程大部分内容是以python3为主的。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-10-15 23:54:56 | 显示全部楼层
冬雪雪冬 发表于 2016-10-15 23:49
一般这种提示是行尾有中文的“)”,你是copy过去的还是自己输入的?
另建议使用python3.x版,小甲鱼的 ...

我是copy您的文件过去的,我的版本是3.6.。。。。。。没有中文,但是他说unexpected EOF。。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-10-15 23:55:55 | 显示全部楼层
冬雪雪冬 发表于 2016-10-15 23:49
python2把input改为raw_input
另建议使用python3.x版,小甲鱼的课程大部分内容是以python3为主的。

大概意思是说没有资料可以读取。。。。我就很纠结
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-10-15 23:59:20 | 显示全部楼层
gmz0821 发表于 2016-10-15 23:54
我是copy您的文件过去的,我的版本是3.6.。。。。。。没有中文,但是他说unexpected EOF。。

我看你的截图是2.7.10的
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-10-16 00:14:13 | 显示全部楼层
冬雪雪冬 发表于 2016-10-15 23:59
我看你的截图是2.7.10的

莫非发生了神奇的事情!!您看我的确实是3.6啊
捕获.PNG
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-23 08:58

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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