0
votes

Y a-t-il un meilleur moyen de lire des fichiers?

Chaque fois que je lis le fichier CSV sous forme de liste en utilisant cette méthode longue, pouvons-nous simplifier cela?

  1. Création de la liste vide li>
  2. Fichier de lecture Row-Wise et Ajout à la liste LI> OL>
    filename = 'mtms_excelExtraction_m_Model_Definition.csv'
    Ana_Type = []
    Ana_Length = []
    Ana_Text = []
    Ana_Space = []                                                                                                                                                                                                                                                                     
    with open(filename, 'rt') as f:  
        reader = csv.reader(f)   
        try:
            for row in reader:
                Ana_Type.append(row[0])
                Ana_Length.append(row[1])
                Ana_Text.append(row[2])
                Ana_Space.append(row[3])            
        except csv.Error as e:
            sys.exit('file %s, line %d: %s' % (filename, reader.line_num, e))
    


3 commentaires

Vous pouvez utiliser un dicterreader au lieu.


Vous pouvez le lire à l'aide de Pandas, puis divisez le Dataframe à l'aide de méthodes de chaîne.


Les pandas ou NUMPY ont-ils une option ici? Ils sont ciblés comme traitement des tableaux multidimensionnels (pour des tables numpées) ou 2D (pour les pandas) avec des fonctions pouvant traiter directement les fichiers CSV.


6 Réponses :


1
votes

Vous pouvez utiliser un dicterreader < Pré> xxx

Cela vous donnera une seule liste de dict objet, une par ligne.


0 commentaires

1
votes

Ceci pourrait être utile:

['Date', '2020-03-03', '2020-03-04', '2020-03-05', '2020-03-06']


0 commentaires

2
votes

C'est une bonne opportunité pour vous de commencer à utiliser Pandas et travailler avec DataFrames.

import pandas as pd

df = pd.read_csv(path_to_csv)


0 commentaires

2
votes

Celui-ci est essentiellement la manière dont une façon numpue de traitement du fichier CSV, sans utiliser NUMPY. Que ce soit mieux que votre méthode d'origine est proche d'une question de goût. Il a en commun avec la méthode numpy ou pandas le fait de charger l'ensemble du fichier en mémoire et de le transposer dans des listes: xxx

Il utilise moins de code et construire des tableaux avec des compréhensions au lieu de répétées au lieu de répétées. Ajoute, mais plus de mémoire (comme numppy ou pandas).

Selon la manière dont vous traitez ultérieurement les données, les numpoprités ou les pandas pourraient être une bonne option. Parce que IMHO ne les utilise que pour charger un fichier CSV dans la liste ne vaut pas la peine.


0 commentaires

1
votes

Essayez ceci xxx

suivant xxx

suivant xxx


0 commentaires

1
votes

Les appels répétitifs vers list.append code> peuvent être évités en lisant le CSV et en utilisant le ZIP Fonction intégrée pour transposer les lignes.

Ana_Types, Ana_Length, Ana_Text, Ana_Space = [list(x) for x in zip(*reader)]


0 commentaires