2016-12-06 14 views
3

私は最初の行にリストを含むテキストファイルを持っています。 ファイルを読み取り、最初の行をリストに保存するにはどうすればよいですか? 最初の行を文字列ではなく完全なリストとして保存したいとします。テキストファイルからリストを保存する

テキストファイルの例:

[[1,2,3],[4,5,6],[7,8,9],[10,11,12]] 
+4

2 upvotes?明らかにOPの試みはありません。 –

答えて

5

あなたのデータが有効なJSONであるように見えます:

>>> import json 
>>> json.loads('[[1,2,3],[4,5,6],[7,8,9],[10,11,12]]') 
[[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]] 

ファイルからロードするには:同様に

with open('my_file.txt') as f: 
    my_list = json.load(f) 

yaml.loadast.literal_evalもそのデータを処理できます。

3

あなたはastモジュールを使用することができます

import ast 

s = '[[1,2,3],[4,5,6],[7,8,9],[10,11,12]]' 
s = ast.literal_eval(s) 
print s, type(s) 

>>> [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]] <type 'list'> 
2

あなたは以下のようなast.literal_eval()を使用することができます:あなたは、文字列を評価するためにast.literal_eval()を使うべき理由

>>> import ast 
>>> 
>>> ast.literal_eval('[[1,2,3],[4,5,6],[7,8,9],[10,11,12]]') 
[[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]] 

をこれがある:

AST .literal_eval(node_or_string)

表現ノードまたは をPythonリテラルまたはコンテナ表示を含む文字列で安全に評価します。文字列 または提供されるノードは、文字列、バイト、数字、タプル、リスト、辞書、セット、 ブーリアン、およびなしという、次のPythonリテラル 構造のみで構成されます。

関連する問題