Ich schreibe eine AI, die Befehle aus Textdateimodulen ausführt. In dem Ordner, in dem sich mein Python-Programm befindet, befindet sich eine Gruppe von Textdateien. Sie verfügen jeweils über Sätze von Schlüsselwort-Befehlssätze wie folgt formatiert:Gibt es irgendwelche unbenutzten Symbole in Python?
Stichwort 1, Funktion 1 | Schlüsselwort 2, Funktion 2
Mein Programm in einer Schleife durch alle diese Dateien und erstellt eine Liste von Keyword-Befehlssätze . Zum Beispiel von 2 Textdateien,
Stichwort 1, Funktion 1 | Schlüsselwort 2, Funktion 2 und Schlüsselwort 3, Funktion 3,
die Liste erzeugte
[[‘ Schlüsselwort 1 ',' Funktion 1 '], [' Schlüsselwort 2 ',' Funktion 2 '], [' Schlüsselwort 3 ',' Funktion 3 ']].
Nun werden die Funktion Portionen sind Befehle über die exec Befehl ausführen, aber ich möchte die Möglichkeit haben, für jede Funktion mehrere Zeilen Code auszuführen. Ich denke, dass ich dies erreichen werde, indem ich ein spezielles Symbol hinzufüge, um eine neue Zeile zu symbolisieren, und die Befehle zu einer Liste hinzufüge, dann iteriere sie durch. Meine Frage ist, gibt es irgendein Symbol, das ich sicher verwenden könnte, das keine anderen Befehle durcheinander bringen wird, die diese Symbole benutzen können? Zum Beispiel, wenn ich % verwende, würde es den Modulo-Befehl durcheinander bringen.
Hier ist mein Code ab sofort, falls Sie es brauchen, obwohl ich nicht wirklich denke, dass Sie würden.
# 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)
Verwenden Sie ein leistungsfähigeres, flexibleres und bewährteres Format zum Speichern Ihrer Daten wie JSON. Mach keine Hacks so. –
Haben Sie überlegt, ein vorhandenes Serialisierungsformat wie XML, YAML oder JSON zu verwenden? Es könnte auch möglich sein, eines der "Pickle" -Formate zu verwenden. Allerdings sind die Multibyte-Symbole in Unicode im Allgemeinen unbenutzt, zum Beispiel ein Schneemann. – cdarke