Pourquoi Python 2.7.3 pense que mon .document csv est sur une seule ligne?

Je suis nouveau en programmation et j'ai rencontré un problème dans certains de mes cours que je ne peux pas donner un sens. Envisager un fichier imaginaire appelé 'exemple.csv " avec le contenu suivant.

Key1,Value1
Key2,Value2
Key3,Value3
...

Si j'exécute le code suivant, il imprime chaque ligne du fichier, suivi par un astérisque sur la dernière ligne. Je m'attendais à imprimer chaque ligne séparées par un astérisque.

infile = open("example.csv", "r")
for line in infile:
    print line.strip()
    print '*'
    #row_elements = line.split(",")
    #print row_elements

En outre, si j'essaie de séparer la ligne à chaque virgule en supprimant les valeurs de hachage dans le code ci-dessus, j'obtiens le résultat suivant.

['Key1', 'Value1\rKey2', 'Value2\rKey3'...

En passant "\r" à la .méthode split() la sortie est légèrement améliorée.

['Key1,Value1', 'Key2,Value2'...

Je ne comprends toujours pas pourquoi python pense que le fichier est sur une seule ligne dans la première place. Quelqu'un aurait-il aperçu?

Il ne pense pas que c'est tous sur un live, vos fins de ligne sont \r\n au lieu de \n.
Non, ses fins de ligne sont '\r'. Pourquoi devrait-il être? @Jeremy, quel système d'exploitation utilisez-vous? Ce programme créé le fichier CSV?
Je pense toujours que c'est \r\n parce que dans le premier exemple de sortie il semble que les espaces et \n sont manquants. Essayez d'ouvrir le fichier en mode universel en utilisant open("example.csv", "rU")
Rob, je suis sous mac OS X 10.5, mais je pense que le problème est venu après que j'ai édité le fichier csv dans Excel. J'ai essayé de lancer le programme avec une version non définitive du fichier et cela a fonctionné comme prévu. Donc, je dirais que Excel reformaté quand je l'ai sauvé.

OriginalL'auteur Jeremy Caron | 2013-03-07