如何在.txt文件中的变量下打印字符串

时间:2019-02-28 02:16:04

标签: python

所以我要用户输入两个不同的.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)

2 个答案:

答案 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)