我正在编写一个AI程序,它通过读取文本文件模块来执行命令。我的Python程序所在的文件夹中有一组文本文件。每份文件中都包含了一些关键词-命令集合,格式如下:
关键词1,函数1|关键词2,函数2
我的程序会循环遍历所有这些文件,并创建一个关键词-命令集合列表。例如,从两个文本文件中,
关键词1,函数1|关键词2,函数2 和 关键词3,函数3,
生成的列表是
[[‘关键词1’, ‘函数1’], [‘关键词2’, ‘函数2’], [‘关键词3’, ‘函数3’]]。
现在,这些函数部分是通过exec命令执行的,但我希望能够为每个函数执行多行代码。我考虑通过添加一个特殊符号来表示换行,并将命令添加到列表中,然后逐一执行。我的问题是,有没有我可以安全使用的符号,不会干扰可能使用这些符号的其他命令?例如,如果我使用%,它会干扰取模运算符。
这是我目前的代码,以防你需要,尽管我认为你可能不需要。
# Setupimport osimport locale# Load modulesfunctions = []print(str(os.getcwd()))print(str(os.getcwd().replace('ZAAI.py', '')))for file in os.listdir(os.getcwd().replace('ZAAI.py', '')): if file.endswith('.txt'): openFile = open(os.getcwd().replace('ZAAI.py', '') + file, encoding=locale.getpreferredencoding()) openFileText = openFile.read() print(openFileText) for item in openFileText.split('|'): functions.append(item.split(','))print(functions)
回答:
嗯,Python支持在单行中使用分号;
来执行多个表达式/语句
a = 1; b = 2; c = a + b; print c
所以,你不需要创建自己的换行符来处理多行Python脚本。不过,我建议你最好不要这样做。
你实际上是在创建一个有些受限的插件架构。人们之前已经做过类似的事情。在Python中,有很多种实现这种功能的选项。我可以想象,当有人查看你的“插件”文件时,看到几十个命令,每个命令都包含一行30行的Python脚本,会感到多么沮丧。