Donc j'essaye de parcourir un fichier .csv et d'en faire des calculs, mon problème étant que le fichier est long de 10001 lignes et quand mon programme l'exécute lisez 5001 de ces lignes. Est-ce que je fais quelque chose de mal en lisant mes données ou y a-t-il une limite de mémoire ou une sorte d'autre limite que je rencontre? Les calculs sont bons, mais ils sont loin des résultats attendus dans certains cas et je suis donc amené à croire que la moitié manquante des données permettra de résoudre ce problème.Python Pour la boucle lit seulement la moitié du fichier
fileName = 'normal.csv' #input("Enter a file name: ").strip()
file = open(fileName, 'r') #open the file for reading
header = file.readline().strip().split(',') #Get the header line
data = [] #Initialise the dataset
for index in range(len(header)):
data.append([])
for yy in file:
ln = file.readline().strip().split(',') #Store the line
for xx in range(len(data)):
data[xx].append(float(ln[xx]))
Et voici quelques exemple de sortie, encore completley formaté, mais il sera finalement:
"""The file normal.csv contains 3 columns and 5000 records.
Column Heading | Mean | Std. Dev.
--------------------+--------------------+--------------------
Width [mm]|999.9797|2.5273
Height [mm]|499.9662|1.6889
Thickness [mm]|12.0000|0.1869"""
Comme il est des devoirs que je vous demande d'essayer de garder les réponses utiles mais pas purement et simplement la solution, merci.
AFAICT, vous lisez 2 lignes dans une itération. "yy" contient déjà une ligne, et appeler "file.readline" vous amènera à la ligne suivante. Vous devriez directement traiter le contenu de "yy" sans appeler readline. – schaazzz