python(工具类)

一、写入数据的工具类

class FileManager(object):
    #保存文件的名称
    filename = 'student.txt'
    #写一个写入数据的接口
    @classmethod
    def write(cls,content,split='\n'):
        '''
        :param content: 要写入的数据
        :param split: 每条数据之间的分隔符
        :return:
        '''
        # 判断传入的参数是否字符串类型,如果是,写入 . 如果不是,抛出异常
        if isinstance(content,str):
            #1.打开文件
            f = open(cls.filename,'a',encoding='utf-8')
            #2.写入数据
            f.write(content)
            f.write(split)
            #3.关闭文件
            f.close()
        else:
            raise TypeError('content must be a str!')
    #写入多行数据
    @classmethod
    def writeline(cls,str_list,split='\n'):
        #判断某个对象是否是某个类型,若是,返回True;否则,返回False
        rs = isinstance(str_list,list)
        #如果为True
        if rs:
            #for循环遍历列表,取出每一数据,判断数据类型是否为字符串
            for content in str_list:
                #如果不是字符串类型
                if isinstance(content,str) == False:
                    #抛出异常
                    raise TypeError('str_list must be a list of "str",ex:["str1","str2"...]')
            #如果没有异常,就可以写入数据了
            #1.打开文件
            f = open(cls.filename,'a')
            #2.写入数据 str1\nstr2\nstr3...
            string = split.join(str_list)
            f.write(string)
            #3.关闭文件
            f.close()
        else:
            #如果传入的不是列表,抛出异常
            raise TypeError('str_list must be a list of "str",ex:["str1","str2"...]')
# 指定写入文件的名称
    FileManager.filename = 'all_student.txt'
    # 执行写入功能函数
    FileManager.write('hello')
    FileManager.write('world')
    FileManager.writeline(['hello', 'world','zhangzhang'])

二、日期格式化工具类

#日期格式化工具类,用类执行一个函数,返回一个对象,对象分别有year\month\day
'''
    2018-2-1\ 2018.2.1\ 2018 2 1
    date.year = 2018
    date.month = 2
    date.day = 1
'''
class DateTool(object):
    #初始化函数
    def __init__(self,year=1970,month=1,day=1):
        self.year = year
        self.month = month
        self.day = day
    #类函数,传递进来一个日期,返回一个该类的对象
    @classmethod
    def get_date(cls,date):
        #判断date是否为str类型
        if not isinstance(date,str):
            #不是str类型,直接触发异常
            raise TypeError('date must be a str!')
        #转换
        #判断是-还是.还是空格
        if '-' in date:
            #分别将2018赋值year 2赋值给month 1赋值给day
            # year, month, day = [2018,2,1]
            year,month,day = list(map(int,date.split('-')))
        elif '.' in date:
            year,month,day = list(map(int,date.split('.')))
        elif ' ' in date:
            year,month,day = list(map(int,date.split(' ')))
         #创建对象
        # obj = DateTool(year,month,day)
        obj = cls(year,month,day)
        #返回对象
        return obj
 # 开始进行日期转换
    # 转换之后 返回一个结果对象
    date = DateTool.get_date('2020 2 22')
    #date有三个属性 分别为year,month,day
    print(date.year)
    print(date.month)
    print(date.day)
三、调用两个类

# -*- coding:utf-8 -*-
#引入
from file_date import FileManager
from file_date import DateTool
#更改类变量的值,指定数据存储的文件名称
FileManager.filename = 'test1文件测试.txt'
#写入一行
FileManager.write('你好',split='*')
# 自己定义的异常,也可以捕获
try:
    # 写入一行
    FileManager.write(1)
except Exception as e:
    print(e)
FileManager.writeline(['lisi','张三','赵武'],split='-')
# 直接类调用get_date函数,会返回一个对象
obj = DateTool.get_date('2018-2-1')
print(obj)
print(obj.year)
print(obj.month)
print(obj.day)






评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值