实现对文件的简单操作
#!/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 性别:男
data文件
Original: https://www.cnblogs.com/haowuji/p/9429237.html
Author: 下-个路口
Title: python 对文件操作
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/606930/
转载文章受原作者版权保护。转载请注明原作者出处!