Python - 如何从外部文件调用代码

2024-05-31 23:51:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我修改了这个问题,使它简单得多。你知道吗

我正在python3.x中运行一个程序。 我想让这个程序打开一个文件名示例.py并运行其中的代码。 这是文件的内容:

#example1.py
print('hello world')

#example2.py
    print('hello world 2')

#main.py
someMagicalCodeHere(executes example2.py)
#prints hello world

我需要这样做,而不是一个导入的文件。你知道吗

导入的文件的问题是它们是在主.py. 我的主.py将创建example1.py、example2.py等并用代码填充它们,然后根据需要引用它们。可能有几千或者几百万。你知道吗

这是一个大项目的一部分,我们正试图切换到一种新的语言。我们还不了解python,我们需要这个概念来继续学习python语言。你知道吗

我试过了 执行(示例.py)你知道吗

我试过了 打开('示例.py','r'),例如: 例如读取()

提前谢谢你的回答,也谢谢所有到目前为止已经回答的人。你知道吗


Tags: 文件代码py程序语言示例内容hello
3条回答

请注意,这些解决方案是不安全的,被认为是有风险的。显然是为了游戏/测试的目的

Python 2:

execfile('example2.py') 

Python 3:

with open('example2.py') as f:
    exec(f.read())

好吧,经过深思熟虑,打猎和寻找,我通过实验,找到了我自己问题的答案。你知道吗

#c:\\one.py
print('hello world')

#c:\\main.py
import os.path


filename = "c:\\one.py"

if not os.path.isfile(filename):
    print ('File does not exist.')
else:

    with open(filename) as f:
        content = f.read().splitlines()

    for line in content:
        exec(line)

返回(不带引号)“Hello World”

我假设你有一个函数,可以把字符串转换成这样的答案,或者是一个字典。否则,这个问题的解决方案将超出目前NLP进展的范围。你知道吗

def ask_question_and_get_response(question=None): answer = input(question) return answer

我还必须假设您有一种转换原始问题的方法,例如“您叫什么名字?”,用户可能会问你的机器人,“我的名字是什么?”。让该函数如下所示:

def get_reflex_question(question):
    <your implementation>
    return reflex_question

有了这两个文件,我们就可以创建一个文件(如果还不存在的话),并将可以解释为Python代码的内容写入其中。你知道吗

def make_code(answer, reflex_question)
    with open("filename", "a") as file:
        file.write("\n")
        file.write("if userBoxAsks == %s:\n\t" % (reflex_question))
        file.write("print(answer)")

它会将代码输出到您的命名文件中。 要运行该文件,您可以使用subprocess模块(读取文档),或者只需将您的这个文件作为模块本身导入。 无论何时更新文件,都可以重新加载导入,以便新代码也能运行。在Python3.x中,可以执行importlib.reload(filename)刷新导入。你知道吗

相关问题 更多 >