我正在编写一个运行文本文件模块命令的AI。在我的python程序所在的文件夹中是一组文本文件。它们每个都有一组格式如下的关键字命令集:
关键字1,功能1 |关键字2,功能2
我的程序遍历所有这些文件并创建一个关键字命令集列表。例如,来自2个文本文件,
关键字1,功能1 |关键字2,功能2 和关键字3,功能3 ,
生成的列表是
[['keyword 1','function 1'],['keyword 2','function 2'],['keyword 3','function 3']] 。
现在 function 部分是通过 exec 命令运行的命令,但我希望能够为每个函数执行多行代码。我想我会通过添加一个特殊符号来表示一个新行并将命令添加到列表中,然后遍历它们来完成此任务。我的问题是,是否有任何我可以安全使用的符号,不会搞乱任何其他可能使用这些符号的命令?例如,如果我使用%,则会破坏模数命令。
这是我现在的代码,如果你需要它,虽然我真的不认为你愿意。
# Setup
import os
import locale
# Load modules
functions = []
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)
答案 0 :(得分:1)
好吧,python使用分号;
a = 1; b = 2; c = a + b; print c
因此,您不需要创建自己的换行符号来处理多行python脚本。话虽如此,你可能不应该这样做。
您实际上是在创建一个有限的插件架构。人们之前已经这样做了。有options for doing this in python的批次。我可以想象一下,有人可能会看到你的一个插件"包含许多命令的文件,每条命令在一行上都有一个30行的python脚本。
答案 1 :(得分:0)
根据the documentation on literals,除了字符串文字和注释之外,Python中不会使用$
和?
个字符。