我需要一种自动获取C编程考试作弊者的方式。我想要做的第一件事是比较两个文件,并认为我可以将文件的行与另一个文件的所有行进行比较,如果等于则计数器接收+1。Python如何比较两个文件行
一个聪明的事情是忽略所有空间和{}
但我不知道这样做的一个聪明的方式,我看到.replace()
使性能真的很糟糕,任何其他解决方案?基本上我做了这么远,但没有工作,因为我想:
def line_compare(filename1, filename2):
counter = 0
result = {}
with open(filename1) as codefile1:
with open(filename2) as codefile2:
lines1 = codefile1.readlines()
lines2 = codefile2.readlines()
for line1 in lines1:
for line2 in lines2:
if line1 == line2:
counter += 1
key = filename1 + " " + filename2
result[key] = counter/len(lines1)
return result
的字典的想法是把两个文件的名称为键和值是将可能复制的代码的百分比。它给了我很多错误的肯定,这是用python做这件事的最好方式吗?
对不起,我想过clonedigger,但它不适用于C代码 – Gribouillis
@Gribouillis克隆进程的C代码?他正在Python中编写一个剽窃检查器,但要比较C. – e0k