注:在使用以上 mode 打開文件的時候,如果增加了b 模式,表示以二進制方式打開
創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供杜爾伯特網(wǎng)站建設、杜爾伯特做網(wǎng)站、杜爾伯特網(wǎng)站設計、杜爾伯特網(wǎng)站制作等企業(yè)網(wǎng)站建設、網(wǎng)頁設計與制作、杜爾伯特企業(yè)網(wǎng)站模板建站服務,十余年杜爾伯特做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡服務。lala = file("accounts.txt","r")
#打開文件
for line in lala.readlines():
user, passwd = line.strip('\n').split()
print user,passwd
f.close
關閉文件
關閉文件,會將內(nèi)存的內(nèi)容寫入文件中(內(nèi)容一般不超過1024個字符就存在內(nèi)存中)
f =file(“feitian.txt”,’a’)
f.write(‘\nsecond line’)
一般不會換行,需要手動換行
在Linux中打開一個終端其實就是創(chuàng)建一個tty文件
一個迭代方法,和readline差不多,不過他讀到結尾的時候會報一個錯誤
注意:這里可以分析日志,每次只從上次處理的地方開始分析
f.seek(offset[,whence]),函數(shù),offset表示移動多少字節(jié),大于零向右偏,小于零向左偏。whence為1的時候表示相對于當前位置移動的,當是2的時候從文件的末尾往后移動,但不一定所有的平臺都支持;為0的時候表示從開頭往后移動.
找到文件的指針的位置
從開頭截取到100的內(nèi)容,他與文件的指針沒有關系。其他的內(nèi)容都會被刪除。
給文件中寫入多行
讀一行打印一行
for i in f.readlines()
print i
#顯示文件中所有的行,但忽略以#號開頭的行。
f = open("world.md","a+")
for i in f :
i = i.strip()
if not i.startswith("#"):
print i
f.close()
# 下面為更高級一點的代碼,在這段程序執(zhí)行完畢之后自動關閉文件
with open("world.md","a+") as f :
for i in f :
i = i.strip()
if not i.startswith("#"):
print i
注:私有方法在外部訪問
在類的內(nèi)部定義中,所有以雙下劃線開始的名字都被翻譯成前面加單下劃線和類名的形式。
class Secretive(object):
def __inaccessible(self):
print "Bet you can't see me ..."
def accessible(self):
print "The secret message is :"
self.__inaccessible()
s = Secretive()
print Secretive._Secretive__inaccessible
s._Secretive__inaccessible()
Bet you can't see me ...
#檢查繼承
isubclass()
檢查一個對象是否為一個類的實例
isinstance()
這里在寫一個繼承的例子,在子類中重寫了構造方法時
#將類都變成新式類,不管是經(jīng)典還是新式,都算新式類
__metaclass__ = type
class Bird:
def __init__(self):
self.hungry = True
def eat(self):
if self.hungry:
print "feitian...."
self.hungry = False
else:
print "No.thinks"
class BirdSing(Bird):
def __init__(self):
super(BirdSing,self).__init__()
# Bird.__init__(self)
self.sound = 'squawk'
def sing(self):
print self.sound
s = BirdSing()
s.sing()
s.eat()
s .eat()
基本的序列和映射規(guī)則
序列和映射是對象的集合
__str__(self)
把一個類的實例變成str。
默認在找到,設置和刪除的時候會調(diào)用相應的構造方法
子類化列表,字典和字符串
class CounterList(list):
def __init__(self,*args):
super(CounterList, self).__init__(*args)
self.counter = 0
def __getitem__(self, index):
self.counter += 1
return super(CounterList, self).__getitem__(index)
c1 = CounterList(range(10))
print c1
c1.reverse()
print c1
del c1[3:6]
print c1
print len(c1)
c1[4]+c1[2]
print c1.counter
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
#有關try except異常:
try:
print 'try...'
r = 10 / 0
print 'result:', r
except ZeroDivisionError, e:
print 'except:', e
finally:
print 'finally...'
print 'END'
except 語句跟著兩個東西,前面是異常的類型,后面的是 異常對象,包含了一些異常信息
異常繼承
http://blog.csdn.net/dragonfli_lee/article/details/52350793
http://www.cnblogs.com/Lival/p/6203111.html
class MyError(Exception):
def __init__(self, value):
self.value = value
def __str__(self):
return repr(self.value)
Python定義了__str__() 和__repr__()兩種方法,__str__()用于顯示給用戶,而__repr__()用于顯示給開發(fā)人員
try:
raise MyError(2*2)
except MyError as e:
print 'My exception occurred, value:', e.value
##另一個代碼
a=10
b=0
try:
c=a/b
print c
except ZeroDivisionError,e:
print e.message
print "done"
#處理一組異常,指的是輸入或者輸出兩組和IOError這個異常類型有關
a=10
b=0
try:
c = b/ a
print c
except (IOError ,ZeroDivisionError),x:
print x
else:
print "no error"
print "done"
#有關try finally異常
無論異常是否發(fā)生,在程序結束前,finally中的語句都會被執(zhí)行。
#Python中的有關攔截的東西
class Rectangle(object):
def lala(self):
self.width = width
def __setattr__(self,width, value):
print "想改,不存在的"
def __delattr__(self, width):
print "想刪除,也不存在"
def __getattr__(self,lalala):
print "你有這個屬性嗎"
def __getattribute__(self,name):
print "想看知道也不存在的"
feitian = Rectangle()
feitian.lala
feitian.width = 1
del feitian.width
feitian.lalala
想看知道也不存在的
想改,不存在的
想刪除,也不存在
想看知道也不存在的
def flatten(nested):
try:
try:nested + ''
except TypeError:pass
else :
raise TypeError
for sublist in nested:
for element in flatten(sublist):
yield element
except TypeError:
yield nested
t = list(flatten(['1',['bar',['baz']]]))
print t
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。