2010-07-23 6 views
0

J'essaye de faire un fichier texte désorganisé dans une liste appropriée pour une utilisation avec un autre programme python. Le fichier texte est une liste de données séparées par quelques espaces mais pas dans des colonnes standard ou tout ce qui est organisé. Le but de ce programme est de lire le fichier en utilisant python et après chaque morceau de données que je veux il y a un espace, donc je veux faire une nouvelle ligne. La sortie devrait être une liste de données avec chaque terme sur une ligne. De plus, il y a des termes que je ne veux pas. Tous les termes que je veux commencer par "JJ".J'ai besoin d'aide pour faire une liste

Voici ce que j'ai jusqu'à présent. Notez que cela ne fonctionne pas encore. Je cherche de l'aide pour terminer ce programme qui sélectionnera tous les termes commençant par JJ et fera une nouvelle ligne dans l'espace après le terme JJ. Merci Robert

datafile = open ('C:\\textfile.txt', 'r') 

line_list = line.split(" ") 
for x in line_list: 
    if x.startswith("JJ") : print line_list 

EDIT: Donc, je veux ouvrir le fichier appelé fichier texte et ont python ne conserver que les lignes de données qui commencent par « JJ ». De plus, je veux que chaque donnée soit sur sa propre ligne, c'est pourquoi je veux les séparer en utilisant l'espace après chaque donnée. Est-ce plus clair?

+0

Veuillez éditer votre question. Tout en faisant cela, s'il vous plaît lire les directives de mise en forme sur le côté droit de la page. Veuillez faire en sorte que votre code respecte les règles afin que nous puissions lire votre code et commenter votre code. –

+0

Aussi, veuillez clarifier votre question. Êtes-vous confus au sujet de la méthode 'append' d'une liste? –

+0

Vous devez également fournir un exemple d'entrée et échantillonner la sortie souhaitée, car votre question n'est pas vraiment claire. Et même si c'était le cas, vous devriez le faire de toute façon! – dkamins

Répondre

-1

lines = [item for item in open('C:\textfile.txt', 'r').read().split(' ') if item.startswith("JJ")]

+0

Est-ce la seule ligne de code dont j'ai besoin alors? –

+0

Cela retournera une liste de chaque élément, séparés par des espaces, dans le fichier avec JJ au premier plan. –

+1

Je pense que l'exemple serait mieux réparti sur plus d'une ligne. Les one-liners sont mignons mais pas toujours faciles à comprendre ou à maintenir, surtout dans un contexte d'enseignement. –

Questions connexes