2017-09-12 9 views
1

は.txtファイル内:.txtファイルをリストのpythonに変換するにはどうすればよいですか?

[['Courtney fan', 'https://www.aaa.com', 'he is a good guy'], ['Courtney fan', 'https://www.bbb.com', 'Dave Butner', 'https://www.ccc.com', 'Austin']] 

私はこの方法を試してみましたが、それが適切に分割されていません。

with open("/Users/jj/Desktop/Courtney_fan.txt","r") as f: 
     sd = f.read().split() 

私はPythonでネストされたリストにこれを書くことができますどのように?

+0

[\ [Pythonの\]:json.loads( )](https://docs.python.org/3/library/json.html#json.loads)( '' '' '' ''で置き換えた後)? – CristiFati

+0

これは有効な 'json'のようです。 json'モジュールを読み込み、その中で 'load'関数を使用してください。 –

+0

既にテキストファイルの中にリストの形になっています。 utput(i/o)pythonのドキュメント。 –

答えて

4

データがリテラル有効なPythonであれば(リスト、辞書など。)あなたは、内蔵のastパッケージニシキヘビからliteral_eval機能を使用することができます。有効なデータ構造のみを評価し、任意のコードを実行することはできないため、これはevalを使用するソリューションより優れています。プレーンテキストevalを使用するのは良い考えです。あなたの.txtファイルとして

from ast import literal_eval 

with open("/Users/jj/Desktop/Courtney_fan.txt","r") as f: 
    my_list = literal_eval(f.read()) 
0

ファイルを開いて読み取るだけです。 jsonはあなたのためにこれを行う必要があります。 何を試しましたか?なぜそれは機能しませんでしたか?

import json 

with open(".txt") as f: 
    l = json.load(f) 
0

は正しいフォーマットされたように見えると機能eval()stringビルドとして読み込まISTあなたのためにこれを行います。ここで

TXTファイルでの文字列に類似している例:あなたのために

test = "['a', ['b','c']]" 
>>> trial = eval(test) 
>>> type(trial) 
<class 'list'> 
>>> trial 
['a', ['b', 'c']] 

は、それは次のようになります。

with open("/Users/jj/Desktop/Courtney_fan.txt") as f: 
     sd = f.read() 

sd_list = eval(sd) 
関連する問題