2016-05-11 3 views
0

私は、テキストファイルモジュールのコマンドを実行するAIを作成しています。私のpythonプログラムが置かれているフォルダには、テキストファイルのグループがあります。彼らはそれぞれ次のようにフォーマットされたキーワードのコマンドセットのセットがあります。Pythonに未使用のシンボルはありますか?

キーワード1、機能1 |キーワード2、機能を2

私のプログラムは、これらすべてのファイルをループし、キーワードコマンドセットのリストを作成し、 。例えば、2つのテキストファイル、

キーワード1、機能1から|キーワード2、機能2キーワード3、機能3

生成されたリストは、

[[」です「キーワード1」、「機能1」、「キーワード2」、「機能2」、「キーワード3」、「機能3」〕

機能部分は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) 
+4

JSONなどのデータを格納するために、より強力で柔軟性があり、確立された形式を使用します。このようなハッキングはしないでください。 –

+0

XML、YAML、JSONなどの既存のシリアル化形式を使用することを検討しましたか? 'pickle'フォーマットの1つを使うことも可能です。言いますが、Unicodeのマルチバイトシンボルは一般的には使用されていません。例えば、雪だるまです。 – cdarke

答えて

1

まあ、Pythonはそうセミコロン;

a = 1; b = 2; c = a + b; print c 

を使用して、単一の行に複数の式/文をサポートし、あなたは複数行のPythonスクリプトを処理するために、独自の改行記号を作成する必要はありません。それは言われている、あなたはおそらくこれを行う必要はありません。

あなたは本質的に幾分限定されたプラグインアーキテクチャを作成しています。人々は以前これをしてきました。 ロットoptions for doing this in pythonです。私は、誰かがあなたの "プラグイン"ファイルを1つの行に30行のpythonスクリプトを持つたくさんのコマンドで見ることができたという不満の程度を想像することができます。

0

the documentation on literalsによると、$?文字は文字列リテラルとコメント以外の目的のためにPythonで使用されていません。

+0

正規表現のメタ文字です。 – cdarke

+0

@cdarke文字列リテラルはどれですか。 – L3viathan

+0

また、それぞれ\ x24と\ x3fとしてエスケープできます。 – ppperry

関連する問題