尝试根据 csv 文件检查用户输入
Trying to check user input against csv file
我正在尝试创建一个脚本,该脚本将从用户那里获取邮政编码,然后根据 csv 文件对其进行检查以验证它是真实的邮政编码。然后我使用 robobrowser 从网上提取一些天气数据。我无法将用户输入与我的 csv 文件进行比较。我已经尝试了一些我在这里看到的不同的东西,但似乎无法弄清楚。如果邮政编码正确,则应将其传递,否则应再次要求用户提供邮政编码。无论如何,我正在寻找检查 csv 文件的输入。这可能是一个简单的修复方法,我似乎无法弄清楚。 csv 文件有很多列,但我真的只想处理第一个称为 zip 的列。提前致谢!
from robobrowser import RoboBrowser
import csv
def location():
global zipcode
zipcode = input('Please enter your five digit zip code:\n')
with open(r'C:\Users\Josh\PycharmProjects\Scripting_fund\zip.csv') as zipcodefile:
reader = csv.DictReader(zipcodefile)
for row in reader:
if row['zip'] == zipcode :
lookup()
else:
location()
这是一个示例脚本,可能适用于您正在尝试执行的操作:
import csv
ZIPCODES = []
def valid(zipcode):
return zipcode in ZIPCODES
def location():
while True:
zipcode = input('Please enter your five digit zip code:\n')
if valid(zipcode):
return zipcode
else:
print("That's not a valid zipcode.")
continue
if __name__ == '__main__':
with open(r'C:\Users\Josh\PycharmProjects\Scripting_fund\zip.csv') as zipcodefile:
reader = csv.DictReader(zipcodefile)
ZIPCODES = [row['zip'] for row in reader]
user_zipcode = location()
通常最好避免使用 global
语句,但如果确实要使用它,则需要 zipcode
在 函数之外启动正在定义它......你可能已经这样做了,只是没有把它包括在你的问题中。
我正在尝试创建一个脚本,该脚本将从用户那里获取邮政编码,然后根据 csv 文件对其进行检查以验证它是真实的邮政编码。然后我使用 robobrowser 从网上提取一些天气数据。我无法将用户输入与我的 csv 文件进行比较。我已经尝试了一些我在这里看到的不同的东西,但似乎无法弄清楚。如果邮政编码正确,则应将其传递,否则应再次要求用户提供邮政编码。无论如何,我正在寻找检查 csv 文件的输入。这可能是一个简单的修复方法,我似乎无法弄清楚。 csv 文件有很多列,但我真的只想处理第一个称为 zip 的列。提前致谢!
from robobrowser import RoboBrowser
import csv
def location():
global zipcode
zipcode = input('Please enter your five digit zip code:\n')
with open(r'C:\Users\Josh\PycharmProjects\Scripting_fund\zip.csv') as zipcodefile:
reader = csv.DictReader(zipcodefile)
for row in reader:
if row['zip'] == zipcode :
lookup()
else:
location()
这是一个示例脚本,可能适用于您正在尝试执行的操作:
import csv
ZIPCODES = []
def valid(zipcode):
return zipcode in ZIPCODES
def location():
while True:
zipcode = input('Please enter your five digit zip code:\n')
if valid(zipcode):
return zipcode
else:
print("That's not a valid zipcode.")
continue
if __name__ == '__main__':
with open(r'C:\Users\Josh\PycharmProjects\Scripting_fund\zip.csv') as zipcodefile:
reader = csv.DictReader(zipcodefile)
ZIPCODES = [row['zip'] for row in reader]
user_zipcode = location()
通常最好避免使用 global
语句,但如果确实要使用它,则需要 zipcode
在 函数之外启动正在定义它......你可能已经这样做了,只是没有把它包括在你的问题中。