Python:在同一窗口下运行脚本

时间:2014-02-14 05:24:25

标签: python

我正在尝试设置一个程序,当某人输入命令时,它将运行该命令,该命令是名为“lib”的子文件夹中的脚本。

这是我的代码:

import os

while 1:
    cmd = input(' >: ')
    for file in os.listdir('lib'):
        if file.endswith('.py'):
            try:
                os.system(str(cmd + '.py'))
            except FileNotFoundError:
                print('Command Not Found.')

我有一个文件:lib / new_user.py但是当我尝试运行它时出现了这个错误:

Traceback (most recent call last):
   File "C:/Users/Daniel/Desktop/Wasm/Exec.py", line 8, in <module>
     exec(str(cmd + '.py'))
   File "<string>", line 1, in <module>
 NameError: name 'new_user' is not defined

有没有人知道解决这个问题的方法?我希望如果脚本能够在同一个窗口下执行,那么它就不会打开一个全新的脚本来运行那里的代码。这可能是一个真正的Noob问题,但我无法找到任何相关内容。

谢谢,

Daniel Alexander

1 个答案:

答案 0 :(得分:0)

os.system(os.path.join('lib', cmd + '.py'))

您正在调用new_user.py,但它不在当前目录中。您需要构建lib/new_user.py

(我不确定这与windows有什么关系。)

然而,从Python执行Python代码的更好方法是将它们转换为模块并使用import

import importlib
cmd_module = importlib.import_module(cmd, 'lib')
cmd_module.execute()

(假设您在execute)中定义了一个函数lib/new_user.py

相关问题