Python字符串而不是未知的模块名称

时间:2018-07-31 17:31:35

标签: python python-3.x function module

Elham在这里,我为以下代码编写了一个简单的代码:

  • 它接受用户的字符串(名称)
  • 然后对字符串进行一些自定义(将小写字母转换为“ _” {under score}并替换空格)
  • 然后自定义后,它将搜索与字符串同名的文件
  • 然后显示文件的内容。这是它的代码:
    import coder
    import time
    import calc

    mainfunc = ["clears", "action mode"]

    main_loop = "main"
    coder.clear_screen()
    while main_loop == "main":
        ask = input("BOT: You say? > ")
        mask = ask.replace(" ", "_")
        if mask == mainfunc[0]:
            print("\n" * 100)
            coder.clear_screen()
        else:
            prt = open(mask, "r")
            pr = prt.read()
            print(pr)
            prt = open(mask, "r")
            pr = prt.read()
            print(pr)

这是我可以使用的文本,并且我计划对某些python模块做同样的事情(例如,不显示其代码,而是应该执行代码),这些模块将使用用户提供的字符串搜索模块名称!就像未知的模块一样,要使用字符串名称执行。

我尝试了getattr和其他类似{}.format的方法,... 但是没有用。我已经研究了函数和模块的文档部分,但没有找到任何帮助,或者当我不知道要搜索的名称时,它太混乱了:(

因此,如果您知道此修复程序,请发送代码!您将挽救我的生命(我和一个朋友打赌了:p

-谢谢

1 个答案:

答案 0 :(得分:0)

Python的exec function将执行一个字符串作为原始代码,使您可以执行以下操作:

module = input("Enter module to import:")
exec("import " + module)