有人可以帮助我解决这个问题吗?我得到了结果1和0,但是我不知道如何将其写入文件。
outfile = "Result.txt"
Array = ["6J", "xx", "ss", "11"]
with open("test.txt", "r") as f:
with open(outfile, "w") as result:
output_list = []
for rec in f.read().splitlines():
rec = rec[:-3]
FBlist = [rec[i:i+2] for i in range(0, len(rec), 2)]
output_list.append(FBlist)
print(output_list)
FBlist_set = set(FBlist)
Array_set = set (Array)
if Array_set & FBlist_set:
print ("found")
result.write("1")
else:
print ("0")
result.write("0")
我的test.txt文件是6J7K8L.XY。首先,我将文本文件转换为[[6J“,” 7K“,” 8L“]。最后3个字符不包括在内。为什么要转换为2个字符,因为我想比较每个2个字符,而我的固定数据也要比较2个字符。我的问题是我不知道如何用文本文件检查固定数据并返回1或0。
答案 0 :(得分:1)
在您发布的信息有限的情况下,您似乎总是获得0,因为您正在将Array
(具有4个字符串元素的数组)与每个FBlist
的前2个元素进行比较您附加到output_list
数组的元素。我只能想象比较看起来像这样:
["6J", "xx", "ss", "11"] == [element1, element2]
,它将始终为False。 aw测一下test.txt文件中的内容是什么?
另外:int(True)
和int(False)
总是总是分别为您提供1或0,因此不需要str((0,1)[found])
,您只需执行str(found)
编辑1:
为回应您的评论,请在代码中进行此调整以查看您要比较的内容:
for line in output_list:
print('comparing {arr} == {line} ?'.format(arr=Array, line=line[:3])
found = int(Array == line[:3])
result.write(found)
从您的评论中我看到一个迫在眉睫的问题,Array
有4个项目,而item [:3]有3个项目,所以它们永远不会相同...