사용자 입력을 가져와 CSV 파일의 특정 열 (10 번째 열)에 있는지 확인한 다음 입력이있는 전체 행을 인쇄하는 프로그램을 만들려고합니다. 문자열을 열의 값과 일치시키는 코드에 대부분 문제가 있습니다.
city = input("Enter a city name: " ).upper()
with open('file.csv','rt') as file:
reader = csv.reader(file, delimiter=' ' )
for row in reader:
if city == row[9]:
print(row)
else:
print(input("City not in file. Enter a city name: "))
break
CSV 파일은 다음과 같습니다.
ID,Date,Age,Sex,Race,City...
1,06/08/2004,32,F,White,Denver
2,06/23/2004,23,M,Black,Hartford
.
.
.
모든 것을 나열하지는 않지만 CSV의 도시 열은 위의 6 번째 열이 아닌 10 번째 열이됩니다.
일치하는 항목이 없으면 첫 번째 줄 다음에 for 루프를 종료하는 것처럼 보입니다. 일치하는 항목을 찾은 후에 만 for 루프에서 벗어나십시오. 일치하는 항목이 없으면 메시지가 인쇄됩니다.
import csv
CITY_NAME_COL = 5
prompt = "Enter a city name: "
found_city = False
with open('cities.csv','rt') as file:
reader = csv.reader(file)
next(reader, None)
city_name = input(prompt)
while not found_city:
for row in reader:
if city_name == row[CITY_NAME_COL]:
found_city = True
print(row)
break
else:
city_name = input(f"City not in file. {prompt}")
file.seek(0)
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다