真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

python中有關(guān)文件處理

Python的文件處理

打開文件f = open (“path”,”mode”)

  • r 模式
    以讀的方式打開,定位到文件開頭 , 默認(rèn)的 mode。文件不存在直接報(bào)錯(cuò),文件只能讀取,不能寫入。
  • r+模式
    以讀寫的方式打開,定位文件開頭 , 可以寫入內(nèi)容到文件
  • w 模式
    以寫的方式打開,打開文件的時(shí)候會(huì)清空文件的內(nèi)容,并且不能讀
  • w+模式
    以讀寫的方式打開,定位到文件頭,并且打開文件的時(shí)候也會(huì)清空文件的內(nèi)容
  • a模式
    以寫的方式打開,定位到文件的末尾,是一個(gè)追加的操作 , 但并不允許讀
  • a+模式
    以讀寫的方式打開,定位到文件的末尾,追加的方式。

注:在使用以上 mode 打開文件的時(shí)候,如果增加了b 模式,表示以二進(jìn)制方式打開

在榆樹等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供網(wǎng)站建設(shè)、做網(wǎng)站 網(wǎng)站設(shè)計(jì)制作按需定制網(wǎng)站,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站設(shè)計(jì),成都營銷網(wǎng)站建設(shè),成都外貿(mào)網(wǎng)站建設(shè)公司,榆樹網(wǎng)站建設(shè)費(fèi)用合理。

讀取文件

  • f. readline()
    其實(shí)他就是用f.next方法實(shí)現(xiàn)的
    f = file(“feitian.txt”,”r”)
    只獲得了文件的句柄
  • f.readline()
    一行一行的讀,每執(zhí)行一次就讀取一行
  • f.read()
    以字符串的形式,一次性讀
  • f.readlines()
    是以列表的形式讀出來
    lala = file("accounts.txt","r")
    #打開文件
    for line  in lala.readlines():
    user, passwd = line.strip('\n').split()
    print user,passwd

    關(guān)閉文件

  • f.close
    關(guān)閉文件

    將內(nèi)存中文件寫入文件中

    關(guān)閉文件,會(huì)將內(nèi)存的內(nèi)容寫入文件中(內(nèi)容一般不超過1024個(gè)字符就存在內(nèi)存中)

  • f.flush()
    會(huì)將內(nèi)存中的文件內(nèi)容寫入到文件中。

    寫入文件內(nèi)容

    f =file(“feitian.txt”,’a’)
    f.write(‘\nsecond line’)
    一般不會(huì)換行,需要手動(dòng)換行

    顯示文件的字符集

  • print f.encoding
    如果結(jié)果為None,就是以ascall碼的形式。
    默認(rèn)是ascall如果要以其他的形式字符編碼存放,則需要用下面的語句寫入文件
    f.write(u’你是狗’.encode(‘utf-8’))

    測試是不是一個(gè)終端

    在Linux中打開一個(gè)終端其實(shí)就是創(chuàng)建一個(gè)tty文件

    查看name的模式

  • f.mode()
    查看file的模式
    ###查看文件的name
  • f.name()

    f.next()

    一個(gè)迭代方法,和readline差不多,不過他讀到結(jié)尾的時(shí)候會(huì)報(bào)一個(gè)錯(cuò)誤

    f.seek()

    注意:這里可以分析日志,每次只從上次處理的地方開始分析
    f.seek(offset[,whence]),函數(shù),offset表示移動(dòng)多少字節(jié),大于零向右偏,小于零向左偏。whence為1的時(shí)候表示相對于當(dāng)前位置移動(dòng)的,當(dāng)是2的時(shí)候從文件的末尾往后移動(dòng),但不一定所有的平臺(tái)都支持;為0的時(shí)候表示從開頭往后移動(dòng).

    f.tell()

    找到文件的指針的位置

    f.truncate(size)

    從開頭截取到100的內(nèi)容,他與文件的指針沒有關(guān)系。其他的內(nèi)容都會(huì)被刪除。

    f.writelines()

    給文件中寫入多行

    f.readlines()

    讀一行打印一行
    for i in f.readlines()
    print i

    #顯示文件中所有的行,但忽略以#號(hào)開頭的行。
    f = open("world.md","a+")
    for i in f :
    i = i.strip()
    if not i.startswith("#"):
        print i 
    f.close()
    # 下面為更高級一點(diǎn)的代碼,在這段程序執(zhí)行完畢之后自動(dòng)關(guān)閉文件
    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()
檢查一個(gè)對象是否為一個(gè)類的實(shí)例
isinstance()

python 中有關(guān)文件處理
這里在寫一個(gè)繼承的例子,在子類中重寫了構(gòu)造方法時(shí)

#將類都變成新式類,不管是經(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ī)則
序列和映射是對象的集合

  • __len___(self):
  • __getitem__(self,key):
  • __setitem__(self,key,value):
  • __delitem__(slef,key):
  • __str__(self)
    把一個(gè)類的實(shí)例變成str。
    默認(rèn)在找到,設(shè)置和刪除的時(shí)候會(huì)調(diào)用相應(yīng)的構(gòu)造方法
    子類化列表,字典和字符串

    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]

    #有關(guān)try except異常:

    try:
    print 'try...'
    r = 10 / 0
    print 'result:', r
    except ZeroDivisionError, e:
    print 'except:', e
    finally:
    print 'finally...'
    print 'END'
    except 語句跟著兩個(gè)東西,前面是異常的類型,后面的是 異常對象,包含了一些異常信息
    異常繼承
    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
    ##另一個(gè)代碼
    a=10
    b=0
    try:
    c=a/b
    print c
    except ZeroDivisionError,e:
    print e.message
    print "done"
    #處理一組異常,指的是輸入或者輸出兩組和IOError這個(gè)異常類型有關(guān)
    a=10
    b=0
    try:
    c = b/ a
    print c
    except (IOError ,ZeroDivisionError),x:
    print x
    else:
    print "no error"
    print "done"
    #有關(guān)try finally異常
    無論異常是否發(fā)生,在程序結(jié)束前,finally中的語句都會(huì)被執(zhí)行。

    #Python中的有關(guān)攔截的東西

  • __getattribute__(self,name)
    #當(dāng)特性name被訪問時(shí)自動(dòng)被調(diào)用
  • __getattr__(self,name)
    #當(dāng)name被訪問且對象沒有響應(yīng)的特性時(shí),自動(dòng)被調(diào)用
  • __setattr__(self,name,value)
    #當(dāng)試圖給name賦值是會(huì)被自定調(diào)用
  • __delatter__(self,name)
    #試圖刪除特性name時(shí)被調(diào)用
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 "你有這個(gè)屬性嗎"
    def __getattribute__(self,name):
        print "想看知道也不存在的"
feitian = Rectangle()
feitian.lala
feitian.width = 1
del feitian.width
feitian.lalala
想看知道也不存在的
想改,不存在的
想刪除,也不存在
想看知道也不存在的

Python中的遞歸生成器

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

文章標(biāo)題:python中有關(guān)文件處理
文章網(wǎng)址:http://weahome.cn/article/joppdj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部