Python : ne pas afficher les résultats mais directement dans le .csv

Résolu/Fermé
nik029 Messages postés 281 Date d'inscription mardi 1 juillet 2008 Statut Membre Dernière intervention 13 avril 2022 - Modifié le 12 avril 2019 à 15:24
nik029 Messages postés 281 Date d'inscription mardi 1 juillet 2008 Statut Membre Dernière intervention 13 avril 2022 - 17 avril 2019 à 10:16
Bonjour,

Je cherche la formule Python 3 me permettant que des éléments scrapés ne se listent pas à la suite dans le terminal IDLE mais qu'ils s'enregistrent directement en csv. J'ai réussi à enregistrer ces éléments en .csv mais qu'à la fin du processus d'affichage de chaque élément dans le terminal - ce qui prend beaucoup de temps lorsqu'il y en a beaucoup.

Des solutions ? :)

Merci d'avance

Configuration: 
Python 3.7.3
Macbook Pro Retina 13" mi-2014


2 réponses

quent217 Messages postés 421 Date d'inscription vendredi 25 septembre 2015 Statut Membre Dernière intervention 1 mars 2024 346
12 avril 2019 à 15:44
Bonjour,
la syntaxe
twint -u username
ne doit pas être utilisée dans la console Python. Essayez la même chose dans un terminal si vous utilisez Linux ou une invite de commande si vous utilisez Windows.
Si vous souhaitez utiliser twint dans un code Python, il faudra faire
import twint
, puis regarder la documentation pour savoir comment utiliser ce module.
2
quent217 Messages postés 421 Date d'inscription vendredi 25 septembre 2015 Statut Membre Dernière intervention 1 mars 2024 346
13 avril 2019 à 09:19
Bonjour,
apparement vous avez modifié votre question le temps que j'écrive ma première réponse ^^ Par contre dans votre nouvelle question, on ne voit plus que vous parlez du module twint (ce qui est toujours le cas j'imagine).

Dans la documentation il est écrit :
"
twint -u username -o file.csv --csv
- Scrape Tweets and save as a csv file."
Et je viens de tester, les éléments sont enregistrés régulièrement, vous n'avez pas besoins d'attendre la fin de l'execution pour voir les premières lignes. (La même chose peut-être faite en code Python)
2
nik029 Messages postés 281 Date d'inscription mardi 1 juillet 2008 Statut Membre Dernière intervention 13 avril 2022 44
Modifié le 14 avril 2019 à 11:57
Effectivement ça enregistre. Le problème c'est que tous les tweets s'affichent à la suite dans le terminal. Pour des comptes comptant des milliers de tweets, ça fait beaucoup. Je cherchais donc un code Python permettant d'enregistrer effectivement en .csv sans avoir besoin que tous les tweets s'affichent dans le terminal
0
quent217 Messages postés 421 Date d'inscription vendredi 25 septembre 2015 Statut Membre Dernière intervention 1 mars 2024 346
16 avril 2019 à 22:28
J'ai l'impression que twint ne donne pas la possibilité de supprimer l'affichage.
Cependant vous pouvez quand même redirigé la sortie pour qu'elle n'apparaisse plus, mais cela aura pour effet de supprimer la totalité de la sortie, y compris vos propre print.
Vous pouvez le faire dans le terminal sous Linux en faisant
commande > /dev/null
(je ne connais pas l'équivalent de /dev/null sous Windows).
Vous pouvez aussi le faire dans votre programme Python de cette manière
import sys
sys.stdout = None

# Suite du programme


Est-ce que j'ai répondu à votre question cette fois ? :)
0
nik029 Messages postés 281 Date d'inscription mardi 1 juillet 2008 Statut Membre Dernière intervention 13 avril 2022 44
17 avril 2019 à 10:16
Oui, merci :)
0