python csv 파일을 읽고 사용자 입력을 받아 입력에 해당하는 카운트를 증가시켜 저장하는 방법
조회수 453회
식당 이름을 입력받아서 ranking.csv 파일이 존재하고, 입력 받은 식당 이름이 ranking.csv 파일 내에 있을 때 행을 추가하지 않고 기존 식당 이름에 count를 +1하여 csv에 write하고 싶은데 방법을 모르겠어요. 도와주세요.
rest_name = str(input())
count = 1
file_exist = os.path.exists('ranking.csv')
if rest_name:
if not file_exist:
with open('ranking.csv', 'w') as csv_file:
fieldnames = ['NAME', 'COUNT']
writer = csv.DictWriter(csv_file, fieldnames=fieldnames)
writer.writeheader()
elif file_exist:
# 파일 존재
with open('ranking.csv', 'r') as csv_file:
fieldnames = ['NAME', 'COUNT']
reader = csv.DictReader(csv_file, fieldnames=fieldnames)
for row in reader:
if rest_name == row:
with open('ranking.csv', 'a') as csv_file2:
writer = csv.DictWriter(csv_file2, fieldnames=fieldnames)
writer.writerow({'NAME': 5, 'COUNT': 5})
else:
with open('ranking.csv', 'a') as csv_file:
fieldnames = ['NAME', 'COUNT']
writer = csv.DictWriter(csv_file, fieldnames=fieldnames)
writer.writerow({'NAME': rest_name, 'COUNT': count})
1 답변
-
>>> import pandas as pd >>> with open("ranking.csv", "w", encoding="utf-8") as f: f.write("""NAME,COUNT 옥류관,111 만리장성,1 닭도날드,23""") 33 >>> rest = input("당신의 최애식당은? :") 당신의 최애식당은? :닭도날드 >>> >>> df_rank = pd.read_csv("ranking.csv", encoding="utf-8") >>> df_rank NAME COUNT 0 옥류관 111 1 만리장성 1 2 닭도날드 23 >>> if rest in list(df_rank.NAME): df_rank.loc[df_rank["NAME"] == rest, "COUNT"] += 1 else: df_rank.loc[len(df_rank)] = [ rest, 1 ] >>> df_rank NAME COUNT 0 옥류관 111 1 만리장성 1 2 닭도날드 24 >>> # 닭도날드가 하나 증가했음. >>> rest = input("당신의 최애식당은? :") 당신의 최애식당은? :버거왕 >>> if rest in list(df_rank.NAME): df_rank.loc[df_rank["NAME"] == rest, "COUNT"] += 1 else: df_rank.loc[len(df_rank)] = [ rest, 1 ] >>> df_rank NAME COUNT 0 옥류관 111 1 만리장성 1 2 닭도날드 24 3 버거왕 1 >>> df_rank.to_csv("ranking.csv", encoding="utf-8", index=False) >>> df_rank = pd.read_csv("ranking.csv", encoding="utf-8") >>> df_rank NAME COUNT 0 옥류관 111 1 만리장성 1 2 닭도날드 24 3 버거왕 1 >>>
댓글 입력