Copier fichier dans tableau 2D

jim2k Messages postés 21 Date d'inscription   Statut Membre Dernière intervention   -  
jim2k Messages postés 21 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

j'apprends aujourd'hui le python et j'essaye de lire un fichier en conservant chaque ligne mais je n'y arrive pas.
J'ai des connaissances en C donc j'essaye de conserver l'adresse du premier caractère de chaque ligne dans un taleau à 2 dimensions ( si c'est plus clair ... )

Voici mon code :
 
#!/usr/bin/python3.4

import sys

name = sys.argv[1]
f = open(name, 'r')

i = 0
line = []
while 1:
line[i] = f.readline()
if not line:
break
i += 1;

while line:
print(line)

f.close()
Si quelqu'un peut m'éclairer !
Je pense que je me complique la vie du fait que je me base sur le C.

A voir également:

2 réponses

ElementW Messages postés 4814 Date d'inscription   Statut Contributeur Dernière intervention   1 223
 
'lut, "Je pense que je me complique la vie du fait que je me base sur le C. "
Oui, car là où en C les pointeurs se retrouvent partout, particulièrement pour les chaines de caractère, Python est un langage de bien plus haut niveau qui fait donc abstraction de tout ça: tout est passé par référence d'objet (cet article en anglais a de magnifiques dessins dignes de mspaint pour expliquer).
f.readline()
lit une ligne, avance le curseur du fichier jusqu'à la prochaine, et la renvoie. Les strings sont immuables en Python (imagine un
const char*
), et un objet qui fait référence à cette zone mémoire est stocké dans ton tableau. À partir de là, ta liste
line
contient des objets pointant (en interne) sur le contenu en mémoire, ligne par ligne.

while line:
Ne marchera pas, tu n'as pas mis d'indice que tu augmentes, aussi Python possède une structure plus facile vu que
line
est une liste:
for l in line:
    print(l)
0
jim2k Messages postés 21 Date d'inscription   Statut Membre Dernière intervention  
 
ok merci nickel ! :)
0