如何在运行时使用python添加导入语句?

时间:2018-11-23 13:07:22

标签: python-3.x

我只是在创建一个将对象名称作为ex输入的程序。列出,字典,元组等,并以文本格式存储所有与其相关的功能。

例如:

如果输入了“列表”,则 Functions_Text_Files \ list.txt 我相应的文本文件将存储在哪里。

除课程外,其他所有语言都正常运行。

说某人输入收藏集,则必须满足以下两种方式之一(首先是任何人都不会喜欢):

  • 集合(或任何此类模块必须已经导入)
  • 如果我通过捕获异常来添加那些模块(我无法做到)

代码如下:

import os
func_name = input("Enter the module of which you want the functions. :")
try :
    function_list = [i for i in dir(eval(func_name)) if not i.startswith("_")]
except NameError:
    eval("import "+func_name)
    function_list = [i for i in dir(eval(func_name)) if not i.startswith("_")]

file_path = 'Functions_Text_Files\\' + func_name + '.txt'
directory = os.path.dirname(file_path)
if not os.path.exists(directory):
    os.makedirs(directory)
    print("The Directory 'Functions_Text_Files' was not found.\nThis generally happens when you're running this first time."
      "\nCreating one!!")
with open(file_path , 'w') as file_object:
    file_object.write("Functions Associated with "+func_name.title()+" are :\n")
    for index, fname in enumerate(sorted(function_list)):
        file_object.write('{:>2}{} {}\n'.format(index+1,".",fname))

1 个答案:

答案 0 :(得分:0)

也许 inspect 模块可以帮助您完成任务。签出documentation。这可能比导入整个模块以获得功能列表更好。