所以我要用户输入两个不同的.txt文件,以比较其中的字符串。当文件中的字符串不同时,这是我想要获得的回报
No
String1
string2
我一切正常,但无法在每个.txt文件中打印两个字符串。
这是我的代码
print ('Enter the fist file name: ', end = '')
fileOne = input()
print ('Enter the fist file name: ', end = '')
fileTwo = input()
f1=open(fileOne,"r")
f2=open(fileTwo,"r")
if f1==f2:
print('yes')
else:
print('No')
print(fileOne + fileTwo)
答案 0 :(得分:1)
文件对象和您可以读取的字符串之间有区别。即使文件对象具有相同的内容,它们也不相等。它们不仅是不同的文件,而且即使它们指向相同的文件,文件对象也不会比较相等,仅当它们是相同的对象时。如果要将整个文件读入内存,请使用.read()
,例如
f1 = open(fileOne).read()
然后f1是一个字符串,您可以按内容进行相等比较。
最佳做法是在处理完文件后将其关闭。如果您使用with
语句,Python可以为您做到这一点:
with open(fileOne) as f1:
f1 = f1.read()
答案 1 :(得分:0)
您需要在打开后先阅读内容。
print ('Enter the fist file name: ', end = '')
fileOne = input()
print ('Enter the fist file name: ', end = '')
fileTwo = input()
f1=open(fileOne,"r").readlines()
f2=open(fileTwo,"r").readlines()
if f1==f2:
print('yes')
else:
print('No')
print(f1)
print(f2)