垃圾分类
import json
import os
class GarbageManager:
def __init__(self, file_path="garbage_data.json"):
self.file_path = file_path
self.data = self._load_data()
def _load_data(self):
"""加载持久化数据"""
try:
if os.path.exists(self.file_path):
with open(self.file_path, 'r', encoding='utf-8') as f:
return json.load(f)
return {}
except Exception as e:
print(f"数据加载失败: {str(e)}")
return {}
def save_data(self):
"""保存数据到文件"""
try:
with open(self.file_path, 'w', encoding='utf-8') as f:
json.dump(self.data, f, ensure_ascii=False, indent=2)
return True
except Exception as e:
print(f"数据保存失败: {str(e)}")
return False
def add_category(self, category_name):
"""添加新分类"""
if category_name not in self.data:
self.data[category_name] = []
return True
return False
def add_garbage_item(self, category_name, item_name):
"""添加垃圾到指定分类"""
if category_name in self.data:
if item_name not in self.data[category_name]:
self.data[category_name].append(item_name)
return True
return False
def query_category(self, item_name):
"""查询垃圾所属分类"""
for category, items in self.data.items():
if item_name in items:
return category
return None
def delete_garbage_item(self, shan):
for fenleiming, wupin in self.data.items():
if shan in wupin:
target = shan
newlist = [x for x in wupin if x != target]
self.data[fenleiming] = newlist
return fenleiming
return None
def main():
manager = GarbageManager()
while True:
print("\n垃圾分类管理系统")
print("1. 添加分类")
print("2. 添加垃圾项")
print("3. 查询分类")
print("4. 删除垃圾项")
print("5. 退出")
choice = input("请选择操作: ").strip()
try:
if choice == '1':
category = input("请输入新分类名称: ").strip()
if manager.add_category(category):
print("分类添加成功")
else:
print("分类已存在")
elif choice == '2':
category = input("请输入目标分类: ").strip()
item = input("请输入垃圾名称: ").strip()
if manager.add_garbage_item(category, item):
print("添加成功")
else:
print("添加失败(分类不存在或项目已存在)")
elif choice == '3':
item = input("请输入要查询的垃圾名称: ").strip()
category = manager.query_category(item)
if category:
print(f"'{item}' 属于 [{category}]")
else:
print("未找到该垃圾的分类信息")
elif choice == '4':
A = input("请输入要删除的垃圾名称:").strip()
jieguo = manager.delete_garbage_item(A)
if A:
print("删除已完成")
else:
print("无该垃圾项")
elif choice == '5':
if manager.save_data():
print("数据已保存")
break
else:
print("无效的输入,请重新选择")
except KeyboardInterrupt:
print("\n操作已取消")
except Exception as e:
print(f"发生错误: {str(e)}")
if __name__ == "__main__":
main()
爽爽爽

浙公网安备 33010602011771号