编写一个通过文件实现图书预约功能的函数
时间: 2024-03-18 22:44:36 浏览: 23
好的,我可以为您提供一个通过文件实现图书预约功能的函数,具体如下:
```python
def reserve_book_file(book_name, user_name, file_path):
'''
book_name: str,要预约的图书名称
user_name: str,预约该图书的用户名
file_path: str,预约信息保存的文件路径
return: str,预约结果的提示信息
'''
try:
with open(file_path, 'r') as f:
# 读取预约信息
reserved_books = eval(f.read())
except FileNotFoundError:
# 如果文件不存在,则创建一个空字典
reserved_books = {}
if book_name in reserved_books:
# 如果该图书已经被预约,则将该用户添加到预约列表中
reserved_books[book_name].append(user_name)
else:
# 如果该图书还没有被预约,则将该图书添加到字典中,并将该用户添加到预约列表中
reserved_books[book_name] = [user_name]
with open(file_path, 'w') as f:
# 将更新后的预约信息写入文件
f.write(str(reserved_books))
return f'{user_name}已成功预约{book_name}!'
```
函数中,`book_name`为要预约的图书名称,`user_name`为预约该图书的用户名,`file_path`为预约信息保存的文件路径。函数会首先尝试读取文件中的预约信息,如果文件不存在,则创建一个空字典。接着,函数会根据`book_name`是否在`reserved_books`中进行判断,如果已经被预约,则将该用户添加到预约列表中,否则将该图书添加到字典中,并将该用户添加到预约列表中。最后,函数会将更新后的预约信息写入文件,并返回预约结果的提示信息。
使用该函数的示例代码如下:
```python
file_path = 'reserved_books.txt'
print(reserve_book_file('Python入门', '小明', file_path)) # 小明已成功预约Python入门!
print(reserve_book_file('Python进阶', '小红', file_path)) # 小红已成功预约Python进阶!
print(reserve_book_file('Python入门', '小王', file_path)) # 小王已成功预约Python入门!
print(reserve_book_file('Java入门', '小张', file_path)) # 小张已成功预约Java入门!
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![application/msword](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)