码迷,mamicode.com
首页 > 编程语言 > 详细

python 对文件操作

时间:2018-08-06 11:41:56      阅读:181      评论:0      收藏:0      [点我收藏+]

标签:操作   img   delete   strip()   code   简单操作   pytho   update   技术分享   

实现对文件的简单操作

#!/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文件

 

python 对文件操作

标签:操作   img   delete   strip()   code   简单操作   pytho   update   技术分享   

原文地址:https://www.cnblogs.com/haowuji/p/9429237.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!