繁体   English   中英

如何使用python检查文本文件中是否存在数据?

[英]How do I check a data exist or not in text file using python?

有谁可以帮我解决这个问题? 我得到了结果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,因为您正在比较Array ,该数组具有4个字符串元素,而每个FBlist元素的前2个元素都附加到了output_list数组。 我只能想象比较看起来像这样:

 ["6J", "xx", "ss", "11"] == [element1, element2]

这将永远是错误的。 对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个项目,因此它们将永远不会相同...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM