类--写入一行或多行数据--日期格式化工具类

# -*- coding:utf-8 -*-
1,。 判断某个对象是否是某种类型
        rs = isinstance(str_list, list)
        # print(rs)

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')
            # 2.写入数据
            f.write(content)
            f.write(split)
            # 3.关闭文件
            f.close()
        else:
            raise TypeError('content must be a str!')

2.写入多行数据

先判断传入的数据是否是字符串类型,如果不是字符串,则抛出异常(raise)

@classmethod
    def writelines(cls, str_list, split='\n'):
        #判断某个对象是否是某种类型
        rs = isinstance(str_list, list)
        # print(rs)
        # 如果为True
        # if rs == True:
        if rs:
            for content in str_list:
                # 如果不是字符串类型
                if isinstance(content,str) == False:
                    # 抛出异常
                    raise TypeError('str_list must be a list of "str",ex:["str1","str1"....]!')
            # 如果没有抛出异常,就可以写入数据了
            # 1.打开文件
            f = open(cls.filename, 'a')
            # 2.写入数据 str1\nstr2\nstr3...
            string = split.join(str_list)
            # string = '\n'.join(str_list)
            f.write(string)
            # 3.关闭文件
            f.close()

            pass
        else:
            # 如果传入的不是列表,抛出异常
            raise TypeError('str_list must be a list of "str",ex:["str1","str1"....]!')
3.日期格式化工具
# import time
# print(time.time())   #戳零点
   输出的结果为:1970年1月1日距今的 秒数。。。
   要求:

日期格式化工具类,用类执行一个函数,返回一个对象,对象分别有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

    4. 类函数,传递进来一个日期,返回个 该类的对象

map()让列表中每一个元素都去执行一次某个函数,返回一个结果列表

year, month, day = [2018,2,1]分别把2018赋值给year,2赋值给month 1赋值给day

# 判断是-还是. 还是空格
if '-' in date:
    list1 = date.split('-')
    # map()让列表中每一个元素都去执行一次某个函数,返回一个结果列表
    numbers = list(map(int, list1))
    year, month, day = numbers
    # year, month, day = [2018,2,1]分别把2018赋值给year2赋值给month 1赋值给day
    # year, month, day = list(map(int, date.split('-')))

 @classmethod
    def get_date(cls, date):
        # 判断date是否为str类型
        if not isinstance(date, str):
            # 不是str类型,直接触发异常
            raise TypeError('date must be a str!')
        # 转换
        # 判断是-还是. 还是空格
        if '-' in date:
            list1 = date.split('-')
            # map()让列表中每一个元素都去执行一次某个函数,返回一个结果列表
            numbers = list(map(int, list1))
            year, month, day = numbers
            # year, month, day = [2018,2,1]分别把2018赋值给year,2赋值给month 1赋值给day
            # 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 = cls(year,month,day)
        # obj = DateTool(year,month,day)
        # 返回对象
        return obj


5.只有在当前文件直接运行时,才会执行以下代码
if __name__=='__main__':
    # 指定写入文件的名称
    FileManager.filename = 'all_student.txt'
    # 执行写入功能函数
    FileManager.write('hello')
    FileManager.write('world')
    FileManager.writelines(['hello','world', '你好', '张三'])
    # FileManager.writelines([1,'34','45', 2, 3])
    # FileManager.writelines('123')

    # 开始进行日期转换
    date = DateTool.get_date('2018-2-1')
    #date 有三个属性, 分别为year month  day
    print(date.year)
    print(date.month)
    print(date.day)
输出结果:

2018
2
1


6.注意

name,age = ['张三' ,22]
print(name)
print(age)
输出结果为:

张三
22

7.注意:

string2='2018-2-1'
list1 = string2.split('-')
numbers=map(int, list1)
numbers = list(numbers)
year, month, day = numbers
print(year)
输出结果为:

                    2018

8,完整代码为:

# -*- coding:utf-8 -*-

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')
            # 2.写入数据
            f.write(content)
            f.write(split)
            # 3.关闭文件
            f.close()
        else:
            raise TypeError('content must be a str!')

    @classmethod
    def writelines(cls, str_list, split='\n'):
        #判断某个对象是否是某种类型
        rs = isinstance(str_list, list)
        # print(rs)
        # 如果为True
        # if rs == True:
        if rs:
            for content in str_list:
                # 如果不是字符串类型
                if isinstance(content,str) == False:
                    # 抛出异常
                    raise TypeError('str_list must be a list of "str",ex:["str1","str1"....]!')
            # 如果没有抛出异常,就可以写入数据了
            # 1.打开文件
            f = open(cls.filename, 'a')
            # 2.写入数据 str1\nstr2\nstr3...
            string = split.join(str_list)
            # string = '\n'.join(str_list)
            f.write(string)
            # 3.关闭文件
            f.close()

            pass
        else:
            # 如果传入的不是列表,抛出异常
            raise TypeError('str_list must be a list of "str",ex:["str1","str1"....]!')


# import time
# print(time.time())   #戳零点
# 日期格式化工具类,用类执行一个函数,返回一个对象,对象分别有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:
            list1 = date.split('-')
            # map()让列表中每一个元素都去执行一次某个函数,返回一个结果列表
            numbers = list(map(int, list1))
            year, month, day = numbers
            # year, month, day = [2018,2,1]分别把2018赋值给year,2赋值给month 1赋值给day
            # 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 = cls(year,month,day)
        # obj = DateTool(year,month,day)
        # 返回对象
        return obj



# 只有在当前文件直接运行时,才会执行以下代码
if __name__=='__main__':
    # 指定写入文件的名称
    FileManager.filename = 'all_student.txt'
    # 执行写入功能函数
    FileManager.write('hello')
    FileManager.write('world')
    FileManager.writelines(['hello','world', '你好', '张三'])
    # FileManager.writelines([1,'34','45', 2, 3])
    # FileManager.writelines('123')

    # 开始进行日期转换
    date = DateTool.get_date('2018-2-1')
    #date 有三个属性, 分别为year month  day
    print(date.year)
    print(date.month)
    print(date.day)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值