3.修改atm取款机数据为持久化永久存储,csv读取实现(分别使用函数实现读和取), 使用异常处理atm取款机读取csv时判断文件是否存在,如果文件不存在提示"没有文件使用原数据"
时间: 2024-12-17 10:18:36 浏览: 10
在Python中,为了实现ATM取款机的数据持久化并使用CSV读取,你可以按照以下步骤操作:
首先,你需要创建两个函数:`write_to_csv(data)` 和 `read_from_csv()`。其中,`write_to_csv` 函数负责将数据写入CSV文件,而 `read_from_csv` 则用于读取数据。同时,我们将在 `read_from_csv` 函数中添加异常处理部分,以检查文件是否存在。
```python
import csv
import os
# 写入数据到CSV文件
def write_to_csv(data, filename):
try:
with open(filename, 'w', newline='', encoding='utf-8') as csvfile:
writer = csv.writer(csvfile)
writer.writerow(['账户编号', '余额'])
for account, balance in data.items():
writer.writerow([account, balance])
print("数据已成功写入CSV文件.")
except Exception as e:
print(f"写入CSV文件时发生错误:{e}")
# 从CSV文件读取数据
def read_from_csv(filename):
try:
if not os.path.exists(filename): # 检查文件是否存在
print("没有文件使用原数据.")
return None
with open(filename, 'r', newline='', encoding='utf-8') as csvfile:
reader = csv.reader(csvfile)
data = {row[0]: float(row[1]) for row in reader} # 将数据转换为字典
return data
except FileNotFoundError:
print("文件未找到.")
except ValueError as ve:
print(f"解析CSV文件时遇到错误:{ve}")
except Exception as e:
print(f"读取CSV文件时发生错误:{e}")
# 示例数据
data = {
"001": 5000,
"002": 7000,
"003": 10000
}
# 修改ATM取款机数据并写入CSV
write_to_csv(data, 'atm_data.csv')
# 读取数据
atm_data = read_from_csv('atm_data.csv')
```
在这个示例中,`write_to_csv` 函数会检查是否能成功打开文件,然后尝试将数据写入;`read_from_csv` 函数则会在尝试读取前检查文件是否存在,并捕获可能出现的各种异常。
阅读全文