Python 从csv文件导入和导出
因此,我尝试创建一个可以搜索数据文件的代码:Python 从csv文件导入和导出,python,csv,python-3.x,Python,Csv,Python 3.x,因此,我尝试创建一个可以搜索数据文件的代码: 按姓氏检索并显示联系人的详细信息 按出生日期检索并显示特定月份内生日的所有联系人 以下是我创建的代码: def search(): option = input('Please select to search by \n1. Surname\n2. D.O.B\n') if option == '1': surname = input('Please enter surname: ') while n
def search():
option = input('Please select to search by \n1. Surname\n2. D.O.B\n')
if option == '1':
surname = input('Please enter surname: ')
while not surname.isalpha():
surname = str(input('Please enter a valid surname: '))
Myfile = open('Address book.csv', 'rt')
for line in Myfile:
if ',' + str(surname) + ',' in line:
print(line)
else:
print('No contacts found')
elif option == '2':
Validmonth = False
while Validmonth == False:
month = input('Please enter the birth month')
if month >='13' and month <='0':
print('Please enter a valid month')
else:
Validmonth = True
Myfile = open ('Address book.csv', 'rt')
for line in Myfile:
if str(month) in line:
print(line)
else:
print('No contacts found')
else:
print('Error, select a valid option')
search()
search()
我想知道为什么?有人请帮忙吗?您测试每一行的姓氏,然后为不匹配的每一行打印
未找到联系人
找到名称时中断循环,并使用else
套件执行for
循环:
for line in Myfile:
if ',' + str(surname) + ',' in line:
print(line)
break
else:
print('No contacts found')
else
在for
循环中,只有当您耗尽了iterable时才会执行,因此当您没有提前中断循环时
您的姓氏是行中的第一个值,因此如果行以姓氏开头,您最好进行测试:
if line.startswith(surname + ','):
专业提示:读取CSV文件时,请使用:
您在每一行上测试姓氏,然后为不匹配的每一行打印No contacts found
找到名称时中断循环,并使用else
套件执行for
循环:
for line in Myfile:
if ',' + str(surname) + ',' in line:
print(line)
break
else:
print('No contacts found')
else
在for
循环中,只有当您耗尽了iterable时才会执行,因此当您没有提前中断循环时
您的姓氏是行中的第一个值,因此如果行以姓氏开头,您最好进行测试:
if line.startswith(surname + ','):
专业提示:读取CSV文件时,请使用:
谢谢你能再帮我一件事吗?如果在这个问题的范围内,当然可以。如果是一个全新的问题,发布一个新问题(在堆栈溢出上搜索答案后)。不,是同一个问题。使用上面的代码,我的代码根本无法运行。我一直收到相同的回复“未找到联系人”。@ConfusedChild24:您是否100%确定文件中的一行出现了文本,Vickers,
?您没有发布CSV文件的示例,因此我无法为您验证。我现在已添加了我在问题中使用的数据。我肯定它在那里。谢谢!你能再帮我一件事吗?如果在这个问题的范围内,当然可以。如果是一个全新的问题,发布一个新问题(在堆栈溢出上搜索答案后)。不,是同一个问题。使用上面的代码,我的代码根本无法运行。我一直收到相同的回复“未找到联系人”。@ConfusedChild24:您是否100%确定文件中的一行出现了文本,Vickers,
?您没有发布CSV文件的示例,因此我无法为您验证。我现在已添加了我在问题中使用的数据。我肯定它在那里。我希望照片上的证件是假的。。。如果不是的话,也许你最好把它们弄糊涂。你能不能别把你的问题给毁了?通过删除批量,您可以删除所有上下文,以便人们评估他们是否有相同的问题,以及我的答案是否也能帮助他们。我希望图片中的凭据是假的。。。如果不是的话,也许你最好把它们弄糊涂。你能不能别把你的问题给毁了?通过删除批量,您可以删除所有上下文,以便人们评估他们是否有相同的问题,以及我的答案是否也能帮助他们。