Bonjour !
J'utilise python et le package pandas pour analyser des données en temps réel.
J'ai un dossier qui contient (une fois l'écriture des fichiers terminés) une liste de fichier comme par exemple:
- set1_20170206_1106.txt
- set1_20170206_1106_1.txt
- set1_20170206_1106_2.txt
- set1_20170206_1106_3.txt
- set1_20170206_1106_4.txt
Ce que je cherche à faire est la chose suivante : créer ma dataframe au fur et à mesure que les données arrivent dans le premier fichier (puis quand le premier fichier est terminé, le deuxième commence et je veux continuer la dataframe etc.)
J'ai essayé le code suivant (pour seulement un fichier en cours d'écriture) :
Où fn_t est le chemin d'accès au fichier.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 import time import pandas as pd list1=[] fo=open(fn_t) df=pd.DataFrame() while 1: where = fo.tell() line = fo.readline() if not line: time.sleep(1) fo.seek(where) else: list1.append(line) df_2=pd.read_csv(list1[0],sep=";") list1=[] df=pd.concat([df,df_2],ignore_index=True)
Le problème est que ça bloque dès la première ligne (qui est le header) et la ligne de commande pour créer df_2 ne fonctionne pas.
Quelqu'un aurait il une solution ?
Merci beaucoup !
Partager