python 对文件操作
实现对文件的简单操作
#!/usr/bin/env python # -*- coding:utf-8 -*- def Find(class_name): class_list = [] tag = False with open('data', 'r', encoding='utf8') as f: for line in f: if line.strip() == '班级:{0}班'.format(class_name.strip()): class_list.append(line) tag = True continue if tag and line.find('班级:') != 0: class_list.append(line) if line.find('班级:') == 0: tag = False return class_list; def Add(dic): # { '班级':'191','学生':[{'姓名':'张三','学号':'2018001','年龄':18,'性别':'男'},{'姓名':'李四','学号':'2018002','年龄':21,'性别':'男'},{'姓名':'小花','学号':'2018003','年龄':18,'性别':'女'},{'姓名':'小红','学号':'2018004','年龄':33,'性别':'女'}]} class_obj = eval(dic) class_name = class_obj['班级'] class_list = Find(class_name) if len(class_list) > 0: print('系统中已经存在班级[%s]。' % (class_name)) return with open('data', 'a+', encoding='utf8') as f: f.write('\n班级:%s班' % (class_name)) for student in class_obj['学生']: f.write('\n 姓名:{0} 学号:{1} 年龄:{2} 性别:{3}'.format(student['姓名'], student['学号'], student['年龄'], student['性别'])) print('添加成功!') def Update(dic): class_obj = eval(dic) class_name = class_obj['班级'] class_list = Find(class_name) if len(class_list) == 0: print('没有查询到该班级信息。') return Delete(class_name) Add(dic) print('更新成功!') def Delete(class_name): class_list = Find(class_name) if len(class_list) == 0: print('没有查询到该班级信息。') return class_list = [] tag = False with open('data', 'r', encoding='utf8') as old_file: for line in old_file: if line.strip() == '班级:{0}班'.format(class_name.strip()): tag = True continue else: if tag and line.find('班级:') != 0: continue if line.find('班级:') == 0: tag = False class_list.append(line) with open('data', 'w', encoding='utf8') as new_file: for line in class_list: new_file.write(line) print('删除成功!') if __name__ == '__main__': while True: print('\n1、查询 2、修改 3、添加 4、删除 ') operation = input('请输入操作:') if (operation == '1'): class_name = input('请输入查询的班级名称:') class_list = Find(class_name) if len(class_list) == 0: print('没有查询到该班级信息。') else: for line in class_list: print(line, end='') elif (operation == '2'): dic = input('请输入修改的字典数据:') Update(dic) elif (operation == '3'): dic = input('请输入添加的字典数据:') Add(dic) elif (operation == '4'): class_name = input('请输入删除的班级名称:') Delete(class_name) else: print("输入不正确")
班级:191班 姓名:张三 学号:2018001 年龄:18 性别:男 姓名:李四 学号:2018002 年龄:21 性别:男 姓名:小花 学号:2018003 年龄:18 性别:女 姓名:小红 学号:2018004 年龄:33 性别:女 班级:188班 姓名:Oliver 学号:2018005 年龄:18 性别:男 姓名:Alax 学号:2018006 年龄:17 性别:男 姓名:Tom 学号:2018007 年龄:19 性别:男 班级:143班 姓名:小白 学号:2018008 年龄:23 性别:男 姓名:小黑 学号:2018009 年龄:22 性别:男 姓名:小蓝 学号:2018010 年龄:19 性别:女 姓名:小吕 学号:2018011 年龄:21 性别:男 班级:189班 姓名:吕布 学号:2018012 年龄:18 性别:男 姓名:貂蝉 学号:2018013 年龄:17 性别:女 姓名:赵云 学号:2018014 年龄:17 性别:男 姓名:韩信 学号:2018015 年龄:18 性别:男