您的位置:首页 > 其它

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

2018-02-01 21:38 393 查看
# -*- 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赋值给year,2赋值给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)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: