在csv文件中搜索字符串输入的指定列



我正在尝试创建一个程序,其中我接受用户输入并查看它是否在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中的城市列将是第10列,而不是上面的第6列。

如果没有匹配,您将在第一行之后退出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)

相关内容

  • 没有找到相关文章

最新更新