2016-07-22 16 views
0

txtファイルからリストを読み込み、リスト変数として.pyファイルにインポートする必要があります。 私はインポート関数を使うことができますが、プログラムをコンパイルしなければならず、exeファイルにコンパイルされたときに、すべてのインポートが終了して変更不可能なファイルに変換されるので、txtから読み込みます。私はまずPythonのtxtファイルからリストを読む

これに似て使用 コードは、私はこのようなtxtファイルに私のリストを得た。次に

[['preset1','a1','b1'],['preset2','a2','b2'],['preset3','a3','b3'],['preset4','a4','b4']] 

、私はPythonでリストをお読みください。

file = open('presets.txt','r') 
content = file.readline() 
newpresets = content.split("'") 
file.close() 

そして、私は、 'シンボルを削除する分割関数で、プログラムは文字列としてではなくリストとしてコンテンツを取るが、これはうまくいかないと思った... だから、私はファイルの内容を読んで解釈する必要がある文字列として。

誰でも手伝ってもらえますか?

おかげ

+0

ご希望の出力は何ですか? –

答えて

2

ast.literal_evalを使用しよう:

>>> a = str([['preset1','a1','b1'],['preset2','a2','b2'],['preset3','a3','b3'],['preset4','a4','b4']]) 
>>> a 
"[['preset1', 'a1', 'b1'], ['preset2', 'a2', 'b2'], ['preset3', 'a3', 'b3'], ['preset4', 'a4', 'b4']]" 
>>> import ast 
>>> ast.literal_eval(a) 
[['preset1', 'a1', 'b1'], ['preset2', 'a2', 'b2'], ['preset3', 'a3', 'b3'], ['preset4', 'a4', 'b4']] 
>>> 
+0

コメントを読んでeval()関数の実際の使い方を理解しているので、これを使うのが好きです... eval()は非常に安全ではないので、これはリストとしての文字列の解釈に過ぎません。 –

+0

http: //stackoverflow.com/questions/15197673/using-pythons-eval-vs-ast-literal-eval –

関連する問題