如何使用python检查文本文件中是否存在数据?
有人能帮我解决这个问题吗?我得到了结果1和0,但我不知道如何将其写入文件如何使用python检查文本文件中是否存在数据?,python,arrays,python-3.x,Python,Arrays,Python 3.x,有人能帮我解决这个问题吗?我得到了结果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 =
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,因为您正在比较数组,一个包含4个字符串元素的数组,以及附加到输出列表数组的每个FBlist元素的前2个元素。我只能想象这样的比较:
["6J", "xx", "ss", "11"] == [element1, element2]
这永远是错误的。关于test.txt文件中的内容的示例
另外:intTrue和intFalse将始终分别为1或0,因此不需要str0,1[found],您只需执行strfound即可
编辑1:
针对您的评论,在代码中进行此调整,以查看您正在比较的内容:
for line in output_list:
print('comparing {arr} == {line} ?'.format(arr=Array, line=line[:3])
found = int(Array == line[:3])
result.write(found)
从您的评论中,我看到了一个直接的问题,数组有4项,而项[:3]有3项,因此它们永远不会是相同的…能否请您详细说明代码在正常工作时应该做什么,以及它现在正在做什么?虽然阅读您自己的代码可能很容易,但其他人并不总是清楚其意图。我更新了@zoeyhewll的信息。我的test.txt文件是6J7K8L.XY。首先,我将该文本文件转换为如下[6J,7K,8L]。最后3个字符不包括在内。为什么我要转换为2个字符,因为我想比较每2个字符和我的固定数据也2个字符。我的问题是我不知道如何用文本文件检查我的固定数据并返回1或0。@Job当然测试必须是数组[:3]==行。这两个列表必须具有相同的长度,否则它们将永远不匹配。@Ekhumaro本质上说的和我一样,你在比较两个不同长度的数组。你能告诉我们你到底想用这段代码实现什么吗…我试着使用数组[:3]==行,但仍然始终给我0。我对这段代码的期望是,我可以检查我的数组数据是否存在于文本文件中,并将结果写入一个新文件,即1或0@口头的_Kint@Job尝试打印这两个文件以查看输出