오늘은 csv와 python을 처음 배우는 것입니다. 답변 된 질문을하면 죄송합니다. csv dictreader를 사용하고 있습니다. 다음 행이있는 파일이 있다고 가정 해 보겠습니다.
{'age': '20', 'name': 'Alice'}
{'age': '21', 'name': 'Freddie'}
{'age': '17', 'name': 'Bob'}
사용자가 이름을 입력 할 수있는 프로그램을 만들겠습니다. 데이터와 일치하면 true를 출력합니다. for 루프와 if else 문을 사용해 보았습니다.
그러나 내가보고있는 특정 데이터 대신 전체 데이터를 반복합니다. 예를 들어 "Bob"을 입력하면
Enter Name:Bob
No record found
No record found
true
대신에
Enter Name:Bob
true
나는 이것이 내가 만든 for 루프 때문이라고 생각하지만 여전히 어떻게 대응해야할지 모르겠습니다.
import csv
name1 = input("Enter Name:")
filePath = "data.csv"
with open(filePath) as csvfile:
reader = csv.DictReader(csvfile)
for row in reader:
if name1 == row['name']:
print("true")
break
else:
print("No record found")
Bob
마지막 행에 있으므로 처음부터 찾아서 Bob
존재할 때까지 모든 행을 반복 해야합니다.
No records found
모든 반복이 아니라 마지막에 인쇄하고 싶을 것입니다 . 다음은 용어가 발견되었는지 여부를 기억하기 위해 플래그를 사용하는 제안입니다.
import csv
name1 = input("Enter Name:")
was_found = False
filePath = "data.csv"
with open(filePath) as csvfile:
reader = csv.DictReader(csvfile)
for row in reader:
if name1 == row['name']:
print("true")
was_found = True
break
if not was_found:
# looked at every row and did not find search term
print("No record found")
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다