zoukankan      html  css  js  c++  java
  • 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('
    班级:%s班' % (class_name))
            for student in class_obj['学生']:
                f.write('
        姓名:{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('
    1、查询    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文件
  • 相关阅读:
    过度和动画
    自定义指令
    使用ref操作DOM和过滤器的使用
    计算属性与侦听器
    MVVM设计思想
    vue template
    Vue初探
    npm 6.14 + Babel 7 使用
    5行代码起一个服务
    vue打包后引入js和css用相对路径引入
  • 原文地址:https://www.cnblogs.com/haowuji/p/9429237.html
Copyright © 2011-2022 走看看