Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用python检查文本文件中是否存在数据?_Python_Arrays_Python 3.x - Fatal编程技术网

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

如何使用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 =

有人能帮我解决这个问题吗?我得到了结果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,因为您正在比较数组,一个包含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尝试打印这两个文件以查看输出