到目前为止,这是我的代码,如果两个文件中的内容相同,我将尝试比较用户给定的文件并进行打印。如果它是相同的字符串内容,但我不想打印Yes
,请打印No
以及两个文件中的单词。
print ('Enter the first file name: ', end = '')
FIRST_FILE = input()
print ('Enter the second file name: ', end = '')
SECOND_FILE = input()
if SECOND_FILE == line in FIRST_FILE:
print('Yes')
else:
print('No')
infile = open('one.txt', 'w')
infile.write('Hello')
infile.close()
infile2 = open('SameAsone.txt', 'w')
infile2.write('Hello')
infile2.close()
infile3 = open('DifferentFromone.txt', 'w')
infile3.write('Bye')
infile3.close()
谢谢。
答案 0 :(得分:3)
一种简单的方法是使用filecmp
import filecmp
check = filecmp.cmp('file1.txt', 'file1.txt')
print ('No', 'Yes')[check]
如果您想了解更多信息,请参见docs
答案 1 :(得分:0)
您可以使用use collections模块Counter方法和OrderedDict保留行的顺序来更有效地实现此目的。
from collections import Counter, OrderedDict
with open("one.txt") as file_one, open("two.txt") as file_two:
if OrderedDict(Counter(file_one)) == OrderedDict(Counter(file_two)):
print("matched")
else:
print("not macthed")
答案 2 :(得分:0)
一种简单的方法是使用f.read()
读取两个文件,其中f
是在读取('r'
)模式下打开的文件。 read()
操作返回文件的字符串内容。
然后,我们使用==
比较文件的读取内容,以确定字符串序列是否相同。
让fileA
,fileB
是存在的文件名,因此,最小文件比较代码应为:
f = open(fileA, 'r')
contentA = f.read()
f.close()
f = open(fileB, 'r')
contentB = f.read()
f.close()
result = "No"
if contentA == contentB:
result = "Yes"
您还应该处理其中一个文件不存在的情况(如果fileA, fileB
中的任何一个引用不存在的文件,则最小代码将返回一个追溯。
答案 3 :(得分:0)
您也可以使用.read
,但我建议您使用with
语句,因为不需要手动关闭文件。
def compare_files(fn1, fn2)
with open(fn1, 'r') as file1, open(fn2, 'r') as file2:
return file1.read() == file2.read()
first_file = input('Enter the first file name: ')
second_file = input('Enter the second file name: ')
print(['No', 'Yes']compare_files(first_file, second_file))