Python txt文件搜索无法正常工作

时间:2019-03-02 14:41:55

标签: python-3.x

以下代码段的目的是搜索文本文件,然后查找变量“名称”。如果文本文件中的任何地方都存在“名称”,则应将user_new设置为False。否则,它在txt文件中不存在,并且user_new应该为True

但是,在两种情况下,user_new都不会设置为任何值,并且会导致错误:“分配前已引用本地变量'user_new'”

with open("accuracy.txt", "r") as search:
    lineno = 0
    for line in search:
        lineno = lineno + 1
        if name in line:
            user_new = False
            break
        else:
            user_new = True
            break
search.close()
print(user_new)

2 个答案:

答案 0 :(得分:1)

此代码中可能发生的唯一方法是,如果for循环没有要迭代的内容。这意味着if语句永远不会运行,并且user_new永远不会定义。

确保accuracy.txt至少有一行,否则该循环将永远不会运行,因为没有行可循环通过。

如果不可避免的是在文本文件中没有任何行,请考虑使用以下内容检查文件的长度:

if search.read() == "":
    user_new = False

答案 1 :(得分:0)

问题有时accuracy.txt为空,这导致循环永远不会运行,并且user_new也从未定义。感谢@Joe Allen的回答。