Même un ingénieur d'infrastructure comme moi qui n'est pas un ingénieur de développement dans l'apprentissage de python Je voudrais recommander le cours python d'udemy qui explique de manière très facile à comprendre En particulier, M. Jun Sakai, l'instructeur, est facile à entendre et couvre un large éventail de contenus. Je suis reconnaissant de pouvoir mentionner le style de code et d'acquérir des connaissances pratiques. (* Personnellement, je ne pense pas que vous puissiez comprendre cela même si vous lisez beaucoup de livres disponibles dans le commerce.)
https://www.udemy.com/course/python-beginner/
L'un des problèmes est que le robot demande le restaurant recommandé dans les questions et réponses, écrit la réponse au format CSV et compte le nombre de réponses, mais c'est difficile. .. ..
Dire la vérité
La tâche précédente est encore loin d'être terminée, mais la partie sous-jacente du processus de comptage en CSV est terminée. Gardez un mémorandum sur l'endroit où vous êtes accro.
[Partie fixe] Tout d'abord, le processus de comptage des contenus saisis sur CSV ne peut pas être effectué. Lorsque j'ai essayé Google, j'ai réalisé que plusieurs personnes s'inquiétaient du même contenu et que le monde était petit.
Plus précisément, lorsque je lis un fichier avec CSV, je ne peux pas l'écrire dans le fichier tel quel Si vous y réfléchissez bien, la méthode open est appelée en lecture au moment de la lecture. Je ne peux pas l'écrire tel quel, mais il y avait des gens ici qui étaient dépendants de la même chose.
Ainsi, lorsque vous le lisez, écrivez le contenu lu dans une variable Vous devez écrire les variables écrites en CSV à la fin du processus.
Par conséquent, le flux de traitement spécifique est le suivant.
―― 1. Le fichier CSV de sortie existe-t-il?
--1-1. S'il existe Lire toutes les lignes du premier fichier CSV existant --1-1-1. Si une clé existe déjà, comptez la valeur de cette clé, stockez-la dans une variable, puis écrivez-la en CSV. --1-1-2. Si la clé n'existe pas, écrivez une nouvelle clé et une nouvelle valeur dans CSV
--1-2. S'il n'existe pas Créer un nouveau CSV → Ce processus est facile car il est expliqué dans le cours udemy python ci-dessus
Sur la base de ce qui précède, j'ai écrit le code suivant
import csv
import os
from termcolor import colored
while True:
print(colored('=' * 20, 'green'))
print(colored('Quel restaurant aimez-vous?', 'green'))
print(colored('=' * 20, 'green'))
name = input()
name = name.title()
if name:
break
#Méthode de création d'un nouveau CSV
def new_csv():
with open('data.csv', 'w', newline='', encoding='utf-8') as csv_file:
fieldnames = ['Name', 'Count']
writer = csv.DictWriter(csv_file,fieldnames=fieldnames)
writer.writeheader()
writer.writerow({'Name': name,'Count': 1})
#Méthode d'écriture de la variable de données en CSV à la fin
def csv_output():
with open('data.csv', 'w', newline='', encoding='utf-8') as csv_file:
fieldnames = ['Name', 'Count']
writer = csv.DictWriter(csv_file, fieldnames=fieldnames)
writer.writeheader()
writer.writerows(data)
#Méthode pour ajouter de nouvelles données au CSV
def csv_appending():
with open('data.csv', 'a', newline='', encoding='utf-8') as csv_file:
fieldnames = ['Name', 'Count']
writer = csv.DictWriter(csv_file, fieldnames=fieldnames)
writer.writerow({'Name': name,'Count': 1})
"""
data.Si csv existe, lisez le contenu du CSV dans la variable de données
Nouveau s'il n'existe pas_appeler la méthode csv
"""
if os.path.exists('data.csv'):
with open('data.csv', 'r', newline='', encoding='utf-8') as csv_file:
reader =csv.DictReader(csv_file)
data = [row for row in reader]
#Si la clé existe déjà, elle compte, et si elle n'existe pas, elle passe par une boucle et csv_Appelez la méthode d'ajout
for row in data:
if row['Name'] == name:
row['Count'] = int(row['Count']) + 1
csv_output()
break
else:
csv_appending()
else:
new_csv()
J'ai fait ce que je voulais faire avec ça, mais je pense qu'il y a probablement une meilleure façon de l'écrire. Et orienté objet? Cadre MVC? Je pense que je peux écrire du code plus sophistiqué et plus cool si j'en ai un peu plus, mais une fois que la partie logique de base est terminée, je pense que c'est la manière d'améliorer l'extensibilité et la visibilité. De plus, il peut être intéressant d'ajouter un processus pour finalement agréger le fichier CSV créé. .. ..
Personnellement, j'aimerais quelques conseils car cela rendra le code encore meilleur! !!
Merci beaucoup.
Recommended Posts