如何使用存储在文本文件中的python程序?

如何使用存储在文本文件中的python程序?,python,Python,我正在制作一个疑难解答程序,其中需要一个存储在文本文件中的python程序,但我不能使用“导入”模块。为了澄清这一点,将有一个python程序存储为“.txt”文件,在主程序中,我将获取该文本文件并将其用作子程序。我曾经尝试过这样做,但我不知道如何去做,尤其是因为我没有太多的Python经验。 下面是大致的程序。我也不知道如何格式化它,但下面是: phonechoice = input("What type of phone do you have?") if 'iphone' in phon

我正在制作一个疑难解答程序,其中需要一个存储在文本文件中的python程序,但我不能使用“导入”模块。为了澄清这一点,将有一个python程序存储为“.txt”文件,在主程序中,我将获取该文本文件并将其用作子程序。我曾经尝试过这样做,但我不知道如何去做,尤其是因为我没有太多的Python经验。 下面是大致的程序。我也不知道如何格式化它,但下面是:

phonechoice = input("What type of phone do you have?")

if 'iphone' in phonechoice:
    #here I would load a text file which contains the program for the iphone
    #which asks them what problem they have with their phone and gives a solution

我想知道我怎样才能做到这一点。我想我怎么能做到这一点,也许我可以把程序一行一行地“复制并粘贴”到一个定义中,然后我就可以使用它了。这行得通吗?如果不行,我还能用什么方法来做呢?

我有点不愿意回答“家庭作业”类型的问题,但我会给你一些关于你需要做什么的建议。如果我有一个包含以下内容的文本文件:

def main():
    print("Hello")

main()
我可以使用
exec
函数执行代码,如下所示:

with open("filename.txt") as file:  #filename should be the name of the file
    data = file.read()

exec(data)  #this executes the code
import imp
my_module = imp.load_source('my_module', 'example.txt')
产出将如预期的那样:

Hello

希望这能对你的问题有所帮助

将文本文件重命名为python文件,即将扩展名更改为“.py”。这不会改变它是文本文件的事实,就像将picture.jpg文件重命名为picture.txt不会改变它是图像文件的事实一样

如果您有一些奇怪的要求,需要导入以.txt扩展名保存在文件中的模块,则不能使用import语句。但仍然可以这样导入:

with open("filename.txt") as file:  #filename should be the name of the file
    data = file.read()

exec(data)  #this executes the code
import imp
my_module = imp.load_source('my_module', 'example.txt')

你能用一个.py文件导入它吗?如果你这样做了,你应该能够使用它。听起来你想
eval
myfile.read()
,这是一件可怕的事情。我闻到一个XY问题。你到底为什么要这么做?这与你的整个工作流程有什么关系?是的,这是我不明白的,因为虽然这是我的想法,但我的老师说我只能使用文本文件,我认为这是一种更复杂、更难的方式。@Inspectorg4我同意你的看法
eval
对于整个填充来说是非常危险的,并且有很多潜在的问题。据我所知,filename.txt或filename.py都是文本文件,不考虑扩展名。当你导入一个文件时,你导入了一个文本文件。我不知道我是否遗漏了什么,但实际的程序会无限期地重复——有没有办法我只能做一次@wimSorry@wim忽略这一点-我之前在做实验,但我没有意识到我实际上是在将代码复制并粘贴到同一个文本文件中。我有超过20个相同的程序,这就是为什么我认为它会无限重复。