寫入資料的工具類和日期格式化工具類

2021-08-15 07:18:47 字數 3686 閱讀 3055

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

# 判斷某個物件是否是某個型別

,如果是返回

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".....] ')

# 日期格式化工具類,用類執行乙個函式,返回乙個物件,物件分別有

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 = [2018,2,1]

分別將2018

賦值year 2

賦值給month 1

賦值給day

year, month, day = numbers

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

# 只有在當前檔案直接執行時,才會執行以下**

if __name__ == '__main__':

# 指定寫入檔案的名稱

filemanager.filename = 'all_student.txt'

# 執行寫入功能函式

filemanager.write('hello')

filemanager.write('world')

filemanager.writelines(['hello', 'world', '

你好', '

張三'])

# 開始進行日期轉換

# 轉換之後 返回乙個結果物件

date = datetool.get_date('2020-2-22')

# date

有三個屬性,分別為

year month day

print(date.year)

print(date.month)

print(date.day)

***************

slots的用法class people(object):

# 限制只有定義的這些屬性才可以動態新增

# 以元組的方式定義能給物件新增的屬性,除此之外的屬性不能新增,對動態新增屬性可以做出一些限制

__slots__ = ('name','age','phone')

def

__init__(self, weight):

super(people, self).__init__()

# self.weight = weight

p1 = people(80)

# 動態新增屬性

# p1.name = '張三'

# p1.*** = '男'

# p1.age = 22

java日期格式化工具類

日期工具類 預設使用 yyyy mm dd hh mm ss 格式化日期 author public final class dateutils 根據預設格式返回當前日期 return public static string getnow 根據使用者格式返回當前日期 param format re...

通用日期格式化工具類DateUtil

public class dateutil if date null else public static string datetostring date date 得到格式化物件 public static dateformat get dateformat final string patte...

數字格式化工具類

數字格式化工具類.public abstract class numberutils param doublestr param pattern return public static string format string doublestr,string pattern catch numb...