2011-05-26 7 views
1

J'ai deux types de csv ayant de données comme:fichier CSV Lire en Python

Format 1 lecture de csv créé à partir de la feuille de calcul ayant deux coloums.

datas = [[u'Woeoe;"[email protected]"'], [u'wqqq;"[email protected]"'], [u'Asasasa;"[email protected]"']] 
Format

2 lecture du csv créé à partir de l'éditeur de texte enregistrer en tant que données .csv et ayant comme

fname lname,[email protected] 
fname1 lname2 ,[email protected] 
datas = [[u'Vaada sasoe ', u'[email protected]'], [u'skdod asksd ', u'[email protected]']] 

j'ai lu ces fichiers avec lecteur de csv:

reader = csv.reader(input, quotechar='"', delimiter=',') 
datas = [] 
for line in reader: 
    datas.append(line) 

comment faire je gère ces deux sortie de format différent de lecteur csv? est leur toute façon que je peux convertir les données tout en lisant dans un format séparé par virgule simple comme format2 mentionné ci-dessus si je saisis le tout type de csv? fondamentalement, je veux lire les données devrait toujours être en format2.

Répondre

2

Le premier fichier utilise ";" comme délimiteur. Donc, il suffit de le dire au lecteur.

Essayez de lire le premier fichier avec csv.reader(input, quotechar='"', delimiter=';')

+0

j'ai essayé cela aussi, mais pour spredsheet csv il me donner à mettre comme [ « SDO XOD », « [email protected] »] qui est juste, mais pour le csv J'ai créé à partir du bloc de texte et enregistrer en tant que csv il me donne le résultat comme ['xod sdo, xod @ gmail.com'] qui ne devrait pas arriver. J'utilise l'environnement ubuntu. – Shashi

+0

@Shashi: Arrête de créer des fichiers CSV dans le bloc de texte. Vous le faites mal. –

+0

Parce que pour le texte de votre pavé de texte, vous devez utiliser la première version de votre lecteur qui était correcte. Vous devriez avoir un lecteur pour Excel et un autre pour le fichier texte. Peut-être pourriez-vous nous en dire plus sur le contexte dans lequel vous faites cela? Vous devez rester avec 1 lecteur universel? – Kaltezar