Sogar ein Infrastrukturingenieur wie ich, der kein Entwicklungsingenieur beim Erlernen von Python ist Ich möchte udemys Python-Kurs empfehlen, der auf sehr leicht verständliche Weise erklärt wird Insbesondere Herr Jun Sakai, der Ausbilder, ist leicht zu hören und deckt eine breite Palette von Inhalten ab Ich bin dankbar, dass ich den Codestil tatsächlich erwähnen und praktisches Wissen lernen kann. (* Ich persönlich glaube nicht, dass Sie dies verstehen können, selbst wenn Sie viele im Handel erhältliche Bücher lesen.)
https://www.udemy.com/course/python-beginner/
Eines der Probleme ist, dass der Roboter das empfohlene Restaurant in Fragen und Antworten fragt, die Antwort an CSV schreibt und die Anzahl der Antworten hochzählt. Dies ist jedoch schwierig. .. ..
Um ehrlich zu sein, war ich einmal frustriert und warf es hierher, aber kürzlich hatte ich eine weitere Gelegenheit, Python zu berühren, und meine Motivation, neu zu lernen, entfachte sich.
Es ist noch weit von der Fertigstellung der vorherigen Aufgabe entfernt, aber der zugrunde liegende Teil des Prozesses, bis zur CSV hochgezählt zu werden, ist abgeschlossen. Halten Sie ein Memorandum darüber, wo Sie süchtig sind.
[Fixer Teil] Erstens kann das Aufzählen der in CSV eingegebenen Inhalte nicht durchgeführt werden. Als ich Google ausprobierte, stellte ich fest, dass verschiedene Leute sich Sorgen um denselben Inhalt machten und die Welt klein war.
Insbesondere wenn ich eine Datei mit CSV lese, kann ich sie nicht so in die Datei schreiben, wie sie ist Wenn Sie sorgfältig darüber nachdenken, wird die open-Methode zum Zeitpunkt des Lesens im Lesemodus aufgerufen. Ich kann es nicht so schreiben, wie es ist, aber es gab einige Leute hier, die von der gleichen Sache abhängig waren.
Wenn Sie es lesen, schreiben Sie den gelesenen Inhalt in eine Variable Sie müssen die geschriebenen Variablen am Ende des Prozesses in CSV schreiben.
Daher ist der spezifische Verarbeitungsablauf wie folgt.
―― 1. Existiert die CSV-Ausgabedatei?
--1-1. Wenn es existiert Lesen Sie alle Zeilen der ersten vorhandenen CSV-Datei --1-1-1. Wenn bereits ein Schlüssel vorhanden ist, zählen Sie den Wert dieses Schlüssels hoch, speichern Sie ihn in einer Variablen und schreiben Sie ihn schließlich in CSV. --1-1-2. Wenn der Schlüssel nicht vorhanden ist, schreiben Sie einen neuen Schlüssel und Wert in CSV
--1-2. Wenn es nicht existiert Erstellen einer neuen CSV → Dieser Vorgang ist einfach, da er im obigen udemy-Python-Kurs erläutert wird
Basierend auf dem oben Gesagten habe ich den folgenden Code geschrieben
import csv
import os
from termcolor import colored
while True:
print(colored('=' * 20, 'green'))
print(colored('Welches Restaurant magst du?', 'green'))
print(colored('=' * 20, 'green'))
name = input()
name = name.title()
if name:
break
#Methode zum Erstellen einer neuen 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})
#Methode zum Schreiben von Datenvariablen in CSV am Ende
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)
#Methode zum Hinzufügen neuer Daten zu 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.Wenn csv vorhanden ist, lesen Sie den Inhalt von CSV in die Datenvariable
Neu, wenn es nicht existiert_Rufen Sie die CSV-Methode auf
"""
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]
#Wenn der Schlüssel bereits vorhanden ist, zählt er hoch, und wenn er nicht vorhanden ist, csv_Rufen Sie die Appending-Methode auf
for row in data:
if row['Name'] == name:
row['Count'] = int(row['Count']) + 1
csv_output()
break
else:
csv_appending()
else:
new_csv()
Ich habe getan, was ich damit machen möchte, aber ich denke, es gibt wahrscheinlich einen besseren Weg, es zu schreiben. Und objektorientiert? MVC-Framework? Ich denke, dass ich anspruchsvolleren und cooleren Code schreiben kann, wenn ich etwas mehr bekomme, aber sobald der Teil der Basislogik fertig ist, denke ich, dass dies der Teil ist, wie die Erweiterbarkeit und Sichtbarkeit verbessert werden kann. Außerdem kann es interessant sein, einen Prozess hinzuzufügen, um die erstellte CSV-Datei endgültig zu aggregieren. .. ..
Persönlich hätte ich gerne einen Rat, da dies den Code noch besser macht! !!
Vielen Dank.
Recommended Posts