|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 小biao砸丶 于 2021-7-25 11:39 编辑
file1=input('请输入需要比较的第一个文件名:')
file2=input('请输入需要比较的第二个文件名:')
fa=open(file1,encoding='utf-8')
fb=open(file2,encoding='utf-8')
n1=len(fa.readlines())
n2=len(fb.readlines())
print('第一个文件有'+str(n1)+'行'+'\n'+'第二个文件有'+str(n2)+'行')
st1=dict.fromkeys(range(n1))
st2=dict.fromkeys(range(n2))
print(st1)
i1=0
for each1 in open(file1,encoding='utf-8'):
print(each1)
st1[i1]=each1
i1+=1
i2=0
for each2 in open(file2,encoding='utf-8'):
print(each2)
st2[i2]=each2
i2+=1
fa.close()
fb.close()
i=1
while(1):
if(st1!=st2):
print('第'+str(i+1)+'行不同')
print(str(st1)+'\t'+str(st2))
i+=1
if(i==n1):
break
以上是自己写的代码,可以运行,但是把两个遍历中的open(file2,encoding='utf-8')分别换成fa ,fb就无法运行了是为什么呢?
原题 如图
指针的问题
在打开文件以后,将每一行遍历后,指针会到文件的最后
这个时候再往后读取是没有内容的
所以我们要把指针调回开头
这样改就可以了
- file1=input('请输入需要比较的第一个文件名:')
- file2=input('请输入需要比较的第二个文件名:')
- fa=open(file1,encoding='utf-8')
- fb=open(file2,encoding='utf-8')
- n1=len(fa.readlines())
- n2=len(fb.readlines())
- print('第一个文件有'+str(n1)+'行'+'\n'+'第二个文件有'+str(n2)+'行')
- st1=dict.fromkeys(range(n1))
- st2=dict.fromkeys(range(n2))
- print(st1)
- i1=0
- fa.seek(0)#将指针返回最开始
- fb.seek(0)#将指针返回最开始
- for each1 in fa:
- print(each1)
- st1[i1]=each1
- i1+=1
- i2=0
- for each2 in fb:
- print(each2)
- st2[i2]=each2
- i2+=1
- fa.close()
- fb.close()
- i=1
- while(1):
- if(st1!=st2):
- print('第'+str(i+1)+'行不同')
- print(str(st1)+'\t'+str(st2))
- i+=1
- if(i==n1):
- break
复制代码
|
|