首页 > 解决方案 > 如何从 txt 文件(包含代码)中读取行并确定它是否正确?

问题描述

文本文件包含 Python 代码。
我的任务是编写一个程序来检查它是否可以在 python 中运行。我不知道如何检查 python 中的行是否正确。我可以从文本文件中读取行,但仍然不知道如何确定当前行是否会在没有任何错误消息的情况下运行。如果它会运行程序打印True,否则False

lst=[]
with open("be.txt","r") as be:
    for line in be:
        lst.append(line.strip("\n"))

例如:一行是:" for i in range(8:"
结果应该是False,因为缺少这个 ")"。

标签: python

解决方案


使用exec和捕获异常。exec将尝试将该行作为 Python 代码执行。如果成功,则执行该行并发生任何副作用(例如,创建新变量)。如果没有,则会引发异常,您可以跳过它并继续下一行。像这样的东西:

lst=[]
with open("be.txt","r") as be:
    for line in be:
        try:
            exec(line)
            lst.append(line.strip("\n"))
        except:
            pass

请注意,如果一行不是完整的 Python 语句,这将不起作用。例如。如果您有一个函数def或多for行循环,则必须exec一次全部完成才能成功。


推荐阅读