我有两个文件,称为源和目标。我比较源中的每个元素以检查它是否也存在于目标中。如果它不存在于目标中,我将它打印出来(最终目标是有0的差异)。这是我写的代码。比较Python中的文件内容
def finddefaulters(source,target): f = open(source,'r') g = open(target,'r') reference = f.readlines() done = g.readlines() for i in reference: if i not in done: print i,
我需要
- 帮助,这将如何代码在额定1-10
- 规模我怎样才能使它更好,最佳,如果文件大小是巨大的。
另一个问题 - 当我将所有行读作列表元素时,它们被解释为'element \ n' - 所以为了正确比较,我必须在每个文件的末尾添加一个换行符。有没有办法去掉换行符,所以我不必在文件末尾添加换行符。我试过rstrip。但它没有奏效。 在此先感谢。
'done = g.readlines()'创建一个列表。 '如果我没有完成'在列表中搜索。多次。看看'set()'。 – eumiro 2011-03-22 14:30:29
您似乎在重新创建[diff](http://docs.python.org/library/difflib.html) – 2011-03-22 14:31:25
除了其他所有内容之外,“f”和“g”对于您的变量来说都是可怕的名称。称他们是明智的。 “我”也可以改进。 – 2011-03-22 14:32:54