Python检查TXT文件中的数字是否存在

时间:2020-06-12 16:04:36

标签: python raspberry-pi

对于为什么我的python脚本无法识别文本文件中的绝对数字我一无所知。

这是文本文件:

001420999;
000502999;
000120999;
000126999;
001220499;
001180000;
001104799;
001123111;

这是我正在使用的代码:

with open('/var/www/html/capcodes.txt', 'r') as f:
    capcodes = capcode.split()
    for cap in capcodes:
        if cap.strip() in f.read():
            print("true")
        else:
            print("false")

是的,capcodes已满,他确实得到了cap.strip()没问题。

这变得越来越陌生了,它唯一说的是数字:“ 001180000”,其他数字则无效。

1 个答案:

答案 0 :(得分:2)

.read读取整个文件。调用一次后,您就在文件末尾。在循环开始之前运行一次read()并将结果存储在变量中,因此:

with open('/var/www/html/capcodes.txt', 'r') as f:
    capcodes = capcode.split()
    stored_lines = f.read()
    for cap in capcodes:
        if cap.strip() in stored_lines:
            print("true")
        else:
            print("false")

请注意,如果要查找全行匹配项,则可能需要先进行一些清理,然后将文件放入列表中:

with open('/var/www/html/capcodes.txt', 'r') as f:
    capcodes = capcode.split()
    stored_lines = [line.strip() for line in f.readlines()]
    for cap in capcodes:
        if cap.strip() in stored_lines:
            print("true")
        else:
            print("false")

...否则,如果文件中有行“ 12345”,则上限的“ 123”值将匹配。