2017-09-12 4 views
1

Dans le fichier txt:Comment puis-je convertir des fichiers .txt en python de liste?

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

J'ai essayé cette méthode, mais il ne se fend pas correctement:

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

Comment puis-je écrire ceci dans une liste imbriquée en python?

+0

[\ [Python \]: json.loads ()] (https://docs.python.org/3/library/json.html#json.loads) (après avoir remplacé '' 'par' '' ')? – CristiFati

+0

Cela ressemble à' json' valide. json' module et utiliser la fonction 'load' dedans –

+0

Il est déjà sous la forme de la liste dans un fichier texte.Vérifiez comment lire le fichier txt son simple.Lire l'entrée/o Documentation utput (i/o) de python. –

Répondre

4

Si les données sont un python valide littéral (liste, dict etc ..) vous pouvez utiliser la fonction literal_eval de pythons intégrés dans le paquet ast. Cela vaut mieux qu'une solution utilisant eval car elle n'évaluera qu'une structure de données valide et n'autorise pas l'exécution de code arbitraire. Il n'y a presque aucun cas où l'utilisation de eval est une bonne idée.

from ast import literal_eval 

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

Vous avez simplement besoin d'ouvrir le fichier et de le lire. Json devrait le faire pour vous. Qu'avez-vous essayé? Et pourquoi ça n'a pas marché?

import json 

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

que votre fichier .txt semble être correct FORMATTé ist lu en tant que string la construction en fonction eval() fait pour vous.

Voici un exemple qui est similaire à votre chaîne dans le fichier txt:

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

Pour vous, il serait alors:

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

sd_list = eval(sd)