Python——文件讀取與寫入

我們經常需要從文件中讀取數據,因此學會文件的讀取很重要,下面來介紹一下文件的讀取工作:

    poem.txt

Shall I compare thee to a summer's day?
我怎麼能夠把你來比作夏天
Thou art more lovely and more temperate。
你不獨比它可愛也比它溫婉
Rough windsdo shakethe darling buds of May,
狂風把五月寵愛的嫩蕊作踐
And summer's lease hath all too short a date。
夏天出賃的期限又爲免太短

1、讀取文件    

單純的讀取一個文件,我們首先要打開文件,然後讀取裏面的內容,使用read()方法,讀取文件的全部內容,然後把讀取出來的內容進行賦給一個變量;

  • with方式打開文件:
  • open方法直接打開並讀取文件,不使用with語句,此方法直接讀取文件,但是要記得關閉文件,我們要知道,我們操作的是什麼,目的是什麼,如果我們只是單純的讀取文件的內容,而不去修改它,那麼就單純使用open()方法,不用第二參數即可。
# -*- coding: UTF-8 -*-
import sys
import json
reload(sys)
sys.setdefaultencoding('utf-8')

def file_Reader():
    #with方式讀取
    with open('poem.txt') as file_object:
        #讀取整個文件
        contents = file_object.read()
        print(type(contents))
        print(contents)
        #
        #逐行讀取
        # for line in file_object:
        #     print line

        #讀取文件內容到一個列表中
        # lines = file_object.readlines()
        # print lines
#*******************************************
    #直接open文件,記得close文件
    # f = open('poem.txt')
    
    # 讀取整個文件
    # contents = f.read()
    # print(contents)

    #組行讀取
    # for line in f:
    #     print line.strip()

    # 讀取文件內容到一個列表中
    # lines = file_object.readlines()
    # print lines
    
    # f.close()

if __name__ == "__main__":
    file_Reader()

二者異同點:

  • 方法1,with 語句在不再需要訪問文件後將其關閉。直接使用open()方法打開文件,但不需要自己調用close()關閉文件;
  • 方法2,直接使用open()方法打開文件,要自己調用close()方法關閉文件。如果程序存在bug,導致close()語句未執行,文件將不會關閉。這看似微不足道,但未妥善地關閉文件可能會導致數據丟失或受損。如果在程序中過早地調用close(),我們會發現需要使用文件時它已關閉(無法訪問),這會導致更多的錯誤。並非任何情況下都能輕鬆地確定關閉文件的恰當時機。
  • 兩種方法都可打開文件,方法1with打開的方式更安全一些,不需要我們去確定什麼時候關閉文件。
  • 兩種方法在打開文件後,都可讀取整個文件內容/逐行讀取/把文件讀取到一個列表中。

二、寫入文件

    保存數據的最簡單的方式之一是將其寫入到文件中。

讀取和寫入文件有兩種方法,一種是with語句打開文件;另一種是open()和close()結合使用打開和讀取文件。

# -*- coding: UTF-8 -*-
import sys
import json
reload(sys)
sys.setdefaultencoding('utf-8')


def file_Writer():
    #with方式寫入文件內容
    # with open("testWriter.txt","w") as f:
    #     f.write("hello,world")
    #

    #open()和close()結合使用打開文件
    f = open("testWriter.txt", "w")
    f.write("hello,world666")
    f.close()


if __name__ == "__main__":
    # file_Reader()
    file_Writer()
打開方式    
"r" 讀取模式 默認的只讀模式打開文件
"w" 寫入模式 寫入模式要覆蓋之前文件裏面的內容
"a" 附加模式  
"r+" 可讀取和寫入文件的模式  

打開文件時,可指定打開模式,如果我們要寫入的文件不存在,函數open()將自動創建它。然而,以寫入('w')模式打開文件時千萬要小心,因爲如果指定的文件已經存在,Python將在返回文件對象前清空該文件。所以使用寫入模式('w')的時候一定要小心。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章