上下文:这是我在名为Looper
的方法中在名为commands的类中运行的代码的一部分。我的代码的想法是,当我在Python命令行中输入内容时,如果它只是一个单词,它运行具有该名称的方法。如果它的单词更大,则取第一个单词,将其作为方法命令,其他一切都是参数。
cmd = input("User>>> ")
cmdSplit = cmd.split()
lencmd = len(cmdSplit)
if (lencmd== 1):
cmd = "commands." + cmd + "()"
print(type(cmd))
logging.debug("This is a length of 1")
try:
exec (cmd)
except:
print ("Not a valid command.")
当我输入 chrome (我在下面发布的方法之一)进入此行时,exec
会中断,并且无法正常工作。但是,如果我使用 hearth (另一种方法,它可以正常工作)。我看不出镀铬的任何原因不起作用,但工作的炉子。 exec
可能只是不喜欢Chrome这个词吗?
def chrome():
subprocess.Popen("chrome.bat", cwd=r"C:\cmdcommands")
def hearth():
subprocess.Popen("hearth.bat", cwd=r"C:\cmdcommands")
我的程序输出:
User>>> chrome
<class 'str'>
DEBUG:root:This is a length of 1
Not a valid command
User>>> hearth
<class 'str'>
DEBUG:root:This is a length of 1
User>>>