# -*- 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)