def delete(): while True: books_id = input('请输入要删除的图书的ID:') if books_id != '': # 默认为True if os.path.exists(filename): # 判断磁盘上文件是否存在 with open(filename, 'r', encoding='utf-8') as file: # 起名 file books_old = file.readlines() else: books_old = [] flag = False # 标记是否删除(默认没有删除) if books_old: # 有内容,返回布尔值 True with open(filename, 'w', encoding='utf-8') as wfile: # 以只写方式打开文件 d = {} for item in books_old: d = dict(eval(item)) # 将字符串转成字典 if d['id'] != books_id: wfile.write(str(d) + '\n') else: flag = True # 表示删除 if flag: # 默认 flag=True print('id为{}的书本信息已被删除'.format(books_id)) else: print('没有找到id为{}的书本信息'.format(books_id)) else:
时间: 2024-02-10 15:30:10 浏览: 73
实现删除图书功能
这段代码是用来删除图书信息的。它的作用是通过用户输入要删除的图书的ID,然后检查文件是否存在,如果存在则读取文件中的所有内容到列表books_old中,否则将列表books_old初始化为空列表。接下来,代码会遍历books_old中的每个元素,将其转化为字典格式,并且判断字典中的id是否与用户输入的id相同,如果不同,则将该字典格式的数据重新写入文件中;如果相同,则将flag标记设置为True,表示已经删除了该图书信息。最后,代码会根据flag的值来判断是否成功删除了图书信息,并且根据相应的情况打印出提示信息。如果用户输入的图书id为空,则程序会一直等待用户重新输入。
阅读全文