我试图逐行获取两个文件之间的差异,Python总是返回false。即使我比较相同的文件,Python(几乎)总是返回false。高飞的例子,但它在Python3.4.3上复制了我的问题。
file1.txt (example)
1
2
3
file1 = r"pathtofile\file1.txt"
file2 = r"pathtofile\file1.txt"
f1 = open(file1, "r")
f2 = open(file2, "r")
for line1 in f1:
found = False
for line2 in f2:
if repr(line1) == repr(line2):
found = True
print("true")
if found == False:
print("false")
Python正确地识别出第一行是相同的,但是之后的所有内容都是错误的。有人可以复制吗?有任何想法吗?
第一次迭代结束后,您已经用尽了迭代器f2
,需要file.seek(0)
返回到文件的开头。
for line1 in f1:
found = False
for line2 in f2:
if repr(line1) == repr(line2):
print("true")
f2.seek(0) # reset pointer to start of file
你只检查的第一线f1
对的线f2
,第一循环之后没有什么可迭代。
根据要发生的情况,您需要break
在找到匹配的行时进行选择,或者found = False
在内部循环中进行重置。
如果要所有匹配的行,则只需将输出存储在列表中,或者如果文件不是很大,则可以使用集合来查找公用行。
with open("f1") as f1, open("f2") as f2:
st = set(f1)
common = st.intersection(f2)
如果要使用差异 st.difference(f2)
,则两者中的任何一条都不同时使用
st.symmetric_difference(f2)
。这完全取决于您实际想要做什么。
您可能还需要检出filecmp和difflib
基类控制器里有error方法,用于api的错误消息返回输出 /** * 操作错误跳转的快捷方法 * @access protected * @param mixed $msg 提示信息,若要指定错误码,可以传数组,格式为['code'=>您的错误码,'msg'=>'您的错误消息'] * @param mixed $data 返回的数据 * @par
我目前正在编码一个二叉查找树,目前正在尝试实现一个递归函数来确定二叉树中是否存在一个节点。 这是节点类: 所讨论的函数是Exists函数。这是在BST的根节点上调用的,就像这样:
我是JS的学生。我有一段代码返回了一个错误。 这是返回的语法错误。你们能解释一下我做错了什么吗?
问题内容: 我有以下代码: 那应该从给定的URL返回图像。 我测试了以下两个随机选择的URL: https://www.google.co.ma/images/srpr/logo4w.png http://www.earthtimes.org/newsimage/osteoderms-storing-minerals-helped-huge-dinosaurs-survive_3011.jpg 第
JSoup-1.8.1 尝试{ Document Document=Jsoup.connect(url.get(); 返回Document.getElementsByTag(“title”).text(); }catch(异常e){ System.out.println(e); 返回null; } org.jsoup.HttpStatusExc0019: HTTP错误获取URL。状态=404, U
问题内容: 在Windows 2003上按计划任务运行的Java应用程序崩溃了,没有日志或任何有助于查明情况的信息。唯一可用的信息是该应用程序返回了代码143(8F)。该错误代码是从计划的任务日志中检索到的。 有谁知道该错误代码(143)代表什么?用户注销是否有可能导致应用程序终止? 谢谢, 问题答案: JVM错误代码143表示内部字段必须有效。这是在OTN讨论论坛上讨论的。但是,结论似乎是扼杀您