2010-05-25 4 views
4

ceci est ma chaîne principaleen python comment supprimer n de chaîne ou d'une liste

"action","employee_id","name" 
"absent","pritesh",2010/09/15 00:00:00 

donc après le nom coolumn son va à la nouvelle ligne, mais ici, j'ajouter à la liste un nouveau personnage ligne est ajoutée et faire comme cette façon

data_list ***** ['"action","employee_id","name"\n"absent","pritesh",2010/09/15 00:00:00\n']

ici son append le nouveau caractère de ligne avec absent mais en fait sa une nouvelle ligne strarting mais son joint en annexe je veux le faire comme

data_list ***** ['"action","employee_id","name","absent","pritesh",2010/09/15 00:00:00']

+2

Je ne comprends pas la syntaxe que vous utilisez. Qu'est-ce qui se passe avec tous les astérisques? –

+3

Peut-être que vous vouliez trop utiliser http://docs.python.org/library/csv.html – badp

Répondre

1
def f(word): 
    return word.strip() 
data_list = map(f, data_list) 
+0

Sûrement que vous vouliez dire 'map'? :) – badp

+0

Oui, je l'ai fait :) Edité en conséquence :) –

8

réponse de Davide peut écrire encore plus simple que:

data_list = [word.strip() for word in data_list] 

Mais je ne suis pas sûr que c'est ce que vous voulez. S'il vous plaît écrivez un échantillon en python.

+1

avec la bande, vous obtenez également débarrasser de la ' – Blauohr

3

D'abord, vous pouvez utiliser strip() pour se débarrasser de '\n':

>>> data = line.strip().split(',') 

Deuxièmement, vous pouvez utiliser le module csv pour le faire:

>>> import csv 
>>> f = open("test") 
>>> r = csv.reader(f) 
>>> print(r.next()) 
['action', 'employee_id', 'name'] 
+1

Votre suggestion d'utiliser le module csv est certainement le chemin à parcourir. Cependant, si vous utilisez 'strip()' alors vous pouvez envisager de ne supprimer que le ''n'' et de conserver les espaces qui peuvent le précéder, je suggère d'utiliser' line.rstrip ('\ n') 'qui sera supprime juste le retour chariot à la fin de la ligne, plutôt que d'utiliser 'strip()' qui supprime tout espace des deux extrémités de la ligne, ce qui peut ne pas être souhaitable dans les cas où une colonne de texte libre apparait colonne. – aculich

1

Je ferais comme ça :

in_string.replace('\n', ',', 1).split(',') 
Questions connexes