1. 程式人生 > >python基礎之檔案操作和簡單的類

python基礎之檔案操作和簡單的類

檔案操作

#檔案刪除
import os
path=".\\data\\"
for s in os.listdir(path):
    filename=path+s
    print(filename)
# os.remove("test.txt")
#檔案開啟
f=open('test.txt',"w")#以寫入的方式開啟,沒有自動建立
f.write("data")#寫入資料data
f=open('test.txt','r')
s=f.read()#讀取f中內容,並將返回的字串賦值給s
f.readline()#讀取一行
f.readlines()#讀取所有行
f=open('test.txt','wb+')#以二進位制的形式開啟
f.write(b'data')#以bytes物件的形式進行讀寫
f.close()#關閉檔案

#通過with開啟檔案,其他的一樣
with open("test.txt",'wb+') as f:
    f.write(b"data")

b1=bytes('data','UTF-8')#將字串轉化成二進位制數
b=b1.decode()#解碼,將二進位制數轉化成字串

定義類:

"""定義一個類,列印兩個顯示函式"""
class MyClass1:
    def Func(self):
        print("I love You")
    def Func1(self):
        print("123")
myc=MyClass1()
print(myc.Func())
print(myc.Func1())

類的預設成員:

"""預設成員"""
class MyClass:
    def __init__(self,name):
        self.name=name
    def getname(self):
        return self.name
myc=MyClass("Name")
print(myc.getname())
@classmethod定義類方法:
"""@classmethod定義類方法"""
class MyClass:
    def f(self):
        return 'I Love You'
    @classmethod#定義類方法,定義了這句才可以直接MyClass.fcls()呼叫,否者會報錯
    def fcls(cls):
        return '類方法: I Love You'
myc=MyClass()
print(myc.f())
print(myc.fcls())
print(MyClass.fcls())

定義靜態類:

"""定義靜態類方法"""
class MyClass:
    @staticmethod
    def fstatic():
        return '靜態類: I Love You'
myc=MyClass()
print(myc.fstatic())
print(MyClass.fstatic())

定義類的動態屬性:

"""定義類的動態屬性"""
class Record:
    pass
Anan=Record()
Anan.name="Test"
Anan.age=20
print(Anan.name)
print(Anan.age)
del Anan.name
del Anan.age
#通過del實現例項物件屬性的刪除
#刪除後再方位動態屬性類會報錯
# print(Anan.name)
# print(Anan.age)

限制屬性類:

"""限制類屬性,通過__solots__實現"""
#定義了顯示類屬性,在呼叫新增沒有的屬性時會報錯
class Record:
    __slots__ = ('name','age')
Anna=Record()
Anna.name='Test'
Anna.age=20
# Anna.test='test'#出錯

私有變數的獲取和修改:

__Occupation='Test'#class中的室友變數定義,直接放在class下一行進行私有變數定義,通過set和get來說修改和獲取該私有屬性的值,

class MyClass2:
    __Occupation='Test'
    def __init__(self,name):
        self.name=name
    def getrecode(self):
        return self.name
    def getOccupation(self):#返回私有變數實現
        return self.__Occupation
    @property
    def Occupation(self):#將get函式裝成屬性
        return self.__Occupation
    @Occupation.setter
    def Occupation(self,value):#將set函式裝飾成屬性
        if (value!='inventor'and(value!='Love')):
            #如果修改的值不是這兩個則提示修改非法
            raise (ValueError('Occupation must be inventor or Test!'))
        else:
            self.__Occupation=value


myc=MyClass2('name')
print(myc.Occupation)
myc.Occupation='inventor'#以屬性的訪問方式來呼叫裝飾器的函式,進行私有變數修改
print(myc.getOccupation())
print(myc.Occupation)