例如,我有一个contact.csv文件,我想根据用户输入来查看他们的姓名、电子邮件和电话号码。
例如,如果用户输入2,它将显示联系人2的信息。
任何帮助都将非常感谢,谢谢。
发布于 2018-07-17 00:50:22
如果你只做了一次,你可以跟踪行号:
def view_contacts():
contact_view = int(input("Number: "))
with open (FILENAME) as file:
for linenum, line in enumerate(file);
if linennum == contact_view-1;
print (line, end= "")
print ()
break
请注意-1
,因为人们通常从1开始计算,而不是像Python那样从0开始计算。
你可以把这个写得简短一点:
def view_contacts():
contact_view = int(input("Number: "))
with open (FILENAME) as file:
for line in itertools.islice(contact_view-1, contact_view):
print (line, end= "")
print ()
但是,如果您一遍又一遍地这样做,您可能只想将整个文件读取到内存中,以便对其进行索引:
with open(FILENAME) as file:
contacts = list(file)
def view_contacts(contacts):
contact_view = int(input("Number: "))
print(contacts[contact_view], end="")
print ()
如果文件太大而无法读取到内存中,但是循环遍历它的速度太慢,您可以查看linecache
,或者构建自己的缓存,或者考虑将文件转换为可以直接索引的格式,或者只使用可以为您执行此操作的数据库。
https://stackoverflow.com/questions/51366138
复制相似问题