• <nav id="wias0"><center id="wias0"></center></nav>
  • 更多課程 選擇中心

    Python培訓
    達內IT學院

    400-111-8989

    Python的文件操作方法匯總

    • 發布:學習與分享
    • 來源:Python互動中心
    • 時間:2018-11-12 18:28

    文件操作對編程語言的重要性不用多說,如果數據不能持久保存,信息技術也就失去了意義。按照本人經驗,IO也是蠻頭疼的一件事,因為不會用得太多,所以總是記不住API,每次都要重新google就會打斷思路,還不一定每次都快速得到正確的文章。

    文件的讀操作

    示例:

    print("->文件句柄的獲取,讀操作:")
    
    f = open('無題','r',encoding='utf8')
    
    d = f.read()
    
    f.close()
    
    print(d)
    
    print('->例二:')
    
    f = open('無題','r',encoding='utf8')
    
    e = f.read(9)
    
    f.close()
    
    print(e)
    
    #python3中,文件中一個中英文都占位1

    運行結果:

    ->文件句柄的獲取,讀操作:

    昨夜星辰昨夜風

    畫樓西畔桂堂東

    身無彩鳳雙飛翼

    心有靈犀一點通

    >例二:

    昨夜星辰昨夜風

    文件的寫操作

    知識點:

    1. 寫操作前,文件先格式化清空文件

    2.清空操作,在執行open的w方法后,清空

    print("寫的操作,寫文件的時候,不能調用讀方法,讀文件的時候,不能調用寫方法")
    
    f = open('python','w',encoding='utf8')
    
    f.write("I must learn python \nbecause, python is important \n")
    
    f.write("java is better?")
    
    f.write("maybe") #上面的語句,沒有加換行符,所以輸出的內容是緊接的
    
    f.close()

    運行結果:

    打開文件后顯示如下:

    1
    
    I must learn python
    
    because, python is important
    
    java is better?maybe

    文件的append方法

    語法格式:

    f = open('文件名','a','encoding = utf8')

    文件這種方法為追加模式:1, 空白文件中,直接從頭開始寫入內容; 2 有內容的文件,會在末尾開始繼續寫入內容

    示例:

    f = open('python','a',encoding='utf8')
    
    f.write("花開又花落")
    
    f.close()

    運行結果:

    I must learn python
    
    because, python is important
    
    java is better?maybe花開又花落

    readline 和 readlines

    readline是逐行讀取

    readlines是全文讀取

    示例:

    print("readline方法")
    
    f = open('無題','r',encoding='utf8')
    
    a = f.readline()
    
    print("此時光標位置:",f.tell())
    
    b = f.readline()
    
    print("此時光標位置:",f.tell())
    
    print(a.strip()) #strip是字符串方法中去除空格和換行的方法
    
    print(b.strip())
    
    print("readlines方法,會將每行的內容組成一個列表打印")
    
    f = open('無題','r',encoding='utf8')
    
    c = f.readlines()
    
    print(c)
    
    print(id(c))
    
    print(id(f))
    
    for i in c:
    
    print(i.strip())
    
    print("遍歷方法")
    
    f.seek(0)
    
    for i in f:
    
    print(i.strip())
    
    f.close() #文件的操作中,close()方法一定不能忘記

    運行結果:

    readline方法

    此時光標位置: 23

    此時光標位置: 46

    昨夜星辰昨夜風

    畫樓西畔桂堂東

    readlines方法,會將每行的內容組成一個列表打印

    ['昨夜星辰昨夜風\n', '畫樓西畔桂堂東\n', '身無彩鳳雙飛翼\n', '心有靈犀一點通']

    37826824

    5344280

    昨夜星辰昨夜風

    畫樓西畔桂堂東

    身無彩鳳雙飛翼

    心有靈犀一點通

    遍歷方法

    昨夜星辰昨夜風

    畫樓西畔桂堂東

    身無彩鳳雙飛翼

    心有靈犀一點通

    文件的tell() 和 seek()方法

    示例:

    f = open('無題','r',encoding='utf8')
    
    f.read(4)
    
    print('當前光標位置',f.tell())
    
    f.seek(10)
    
    print('當前光標位置',f.tell())
    
    f.close()
    
    #read時,一個中文算三個字符

    運行結果:

    當前光標位置 12

    當前光標位置 10

    文件操作之flush方法

    mport sys,time
    
    for i in range(20):
    
    sys.stdout.write("#")
    
    sys.stdout.flush()
    
    time.sleep(1)
    
    truncate方法
    
    f = open('test','w')
    
    f.write("hello")
    
    f.write("\n")
    
    f.write("python")
    
    f.flush() #這樣不用執行close方法,內存中的數據,就會寫入到disk
    
    f.close()
    
    f = open('test','a')
    
    f.truncate(2) #截斷方法,光標從2開始往后截取
    
    f.close()

    其他的文件方法: r+ 讀寫方法

    基于字符read & write

    最基本的文件操作當然就是在文件中讀寫數據。這也是很容易掌握的。現在打開一個文件以進行寫操作:

    fileHandle = open ( 'test.txt', 'w' )

    ‘w'是指文件將被寫入數據,語句的其它部分很好理解。下一步就是將數據寫入文件:

    fileHandle.write ( 'This is a test.\nReally, it is.' )

    這個語句將“This is a test.”寫入文件的第一行,“Really, it is.”寫入文件的第二行。最后,我們需要做清理工作,并且關閉文件:

    fileHandle.close()

    正如你所見,在Python的面向對象機制下,這確實非常簡單。需要注意的是,當你再次使用“w”方式在文件中寫數據,所有原來的內容都會被刪除。如果想保留原來的內容,可以使用“a”方式在文件中結尾附加數據:

    fileHandle = open ( 'test.txt', 'a' )
    
    fileHandle.write ( '\n\nBottom line.' )
    
    fileHandle.close()

    然后,我們讀取test.txt,并將內容顯示出來:

    fileHandle = open ( 'test.txt' )
    
    print fileHandle.read()
    
    fileHandle.close()

    以上語句將讀取整個文件并顯示其中的數據。

    基于行的讀寫 line

    3fileHandle = open ( 'test.txt' )
    
    print fileHandle.readline() # "This is a test."
    
    fileHandle.close()

    同時,也可以將文件內容保存到一個list中:

    fileHandle = open ( 'test.txt' )
    
    fileList = fileHandle.readlines()
    
    for fileLine in fileList:
    
    print '>>', fileLine
    
    fileHandle.close()

    或者在文件中一次讀取幾個字節的內容:

    fileHandle = open ( 'test.txt' )
    
    print fileHandle.read ( 1 ) # "T"
    
    fileHandle.seek ( 4 )
    
    print FileHandle.read ( 1 ) # " "(原文有錯)

    本文內容轉載自網絡,本著分享與傳播的原則,版權歸原作者所有,如有侵權請聯系我們進行刪除!

    預約申請免費試聽課

    填寫下面表單即可預約申請免費試聽!怕錢不夠?可就業掙錢后再付學費! 怕學不會?助教全程陪讀,隨時解惑!擔心就業?一地學習,可全國推薦就業!

    上一篇:Python運維自動化開發之Paramiko模塊
    下一篇:專門為零基礎學習Python開發準備的學習資料

    如何運用Python編程處理大數據?用Python編程處理大數據的技巧是什么?

    Python面向對象編程的知識點都在這了!

    Python的高級特征及用法(部分)

    聽說這些Python知識,很少有人知道!

    選擇城市和中心
    黑龍江省

    吉林省

    河北省

    湖南省

    貴州省

    云南省

    廣西省

    海南省

    4438全国大成网人网站