Python——文件讀取


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

    1.讀取整個文件

    pi_digits.text

    3.1415926535

      8979323846

      2643383279

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

    file_reader.py

    with open('pi_digits.text') as file_object:

        contents = file_object.read()

        print(type(contents))

    print(contents)

     輸出結果如下:

    3.1415926535
    8979323846
    2643383279

      <class 'str'>

    還有一種方法讀取文件,我們來看看,直接打開然后進行讀取,不使用with語句:

    f = open('pi_digits.text')
  contents = f.read()
  print(contents)
  f.close()

    這種方法直接讀取文件,但是要記得關閉文件,我們要知道,我們操作的是什么,目的是什么,如果我們只是單純的讀取文件的內容,而不去修改它,那么就單純使用open()方法,不用第二參數即可:

    第一種方法中,with open('pi_digits.text') as file_object:做了大量的工作。我們先來看看open()。要以任何方式使用文件——哪怕僅僅打印其內容,都得先打開文件,這樣才能夠訪問它,而且第一種方法讀取之后,賦給變量contents,變量contents是一個字符串,不是列表,也不是元祖之類的,而只是單純的字符串情況;第二種方法必須記得關閉文件。

    文件的相對路徑和絕對路徑

    這兩種方法的區別:with在不再需要訪問文件后將其關閉。在這個程序中,注意到我們調用了open(),但沒有調用close();我們也可以調用open()和close()來打開和關閉文件(第二種方法),但這樣做時,如果程序存在bug,導致close()語句未執行,文件將不會關閉。這看似微不足道,但未妥善地關閉文件可能會導致數據丟失或受損。如果在程序中過早地調用close(),我們會發現需要使用文件時它已關閉(無法訪問),這會導致更多的錯誤。並非任何情況下都能輕松地確定文件的恰當時機,但通過使用前面所示的結構,可讓Python去確定:我們只管打開文件,並在需要時使用它,Python自會在合適的時候自動將其關閉。

    所以這兩種方法都是可以的,只是with打開的方式更安全一些,不需要我們去確定什么時候關閉文件,而open()直接打開的話就需要我們自己去確定什么時候要關閉文件,要使用close()方法關閉文件。

    2.逐行讀取

    f = open("pi_digits.text")
  for line in f:
    print(line.strip())
  f.close()

    我們使用open()和close()方式打開文件,這種情況下,我們一定要記得關閉文件,以免文件遭到破壞,我們打開文件,

    也可以使用with語句打開文件,這種方法讓我們避免使用close()語句,系統會自動幫助我們在合適的時機關閉文件,也不用擔心異常的問題。

    with open('pi_digits.text') as f:
    for line in f:
      print(line)
    我們使用with語句打開這個文件,並命名為f,然后遍歷這個打開的文件,輸出每一行。這樣我們就可以實現按行讀取的方法。

    3.把文件讀取到一個列表中

    with open('pi_digits.text') as f:
    lines = f.readlines()
    print(lines)

    把文件讀取到一個列表中,readlines()方法是文件中讀取每一行,並將其存儲到一個列表中;接下來,該列表被存儲到變量lines中;讀取文件得到一個列表的方法,我們讀取這個文件,並且得到一個列表

    f = open("pi_digits.text")
  lines = f.readlines()
  print(lines)

    f.close()

    我們在直接使用open()打開文件的時候,一定要記得關閉文件,使用close()方法把文件關閉,這點可能經常會一不小心忘記,只記得打開文件,但是沒有關閉文件。

二、寫入文件

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

    write_message.py

    with open('programming.text','w') as f:

    f.write("I love programming")

    在這個示例中,調用open()時提供了兩個實參。第一個實參也是要打開的文件的名稱;第二個實參("w")告訴Python,我們要以寫入模式打開這個文件。打開文件時,可指定讀取模式('r')、寫入模式('w')、附加模式('a')或者讓我們能夠讀取和寫入文件的模式('r+').如果我們省略了模式實參,Python將以默認的只讀模式打開文件

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

    我們要知道我們打開文件是做什么如果只是單純的打開和讀取文件,只需要open()即可;要是寫入的話,就需要指定第二參數。默認省略參數的情況下是只讀模式的。

    寫入的方式

    (1)寫入模式('r')

    (2)附加模式('a')

  with open("pi_digits.text",'a') as f:
     f.write("I love you,too,Really\n")
       f.write("I also love finding meanting in large datasets.\n")
     f.write("I love to start to make success.")

    寫入模式('r')和附加模式('a')都是向文件中寫入內容,不同的是寫入模式要覆蓋之前文件里面的內容。

    如果我們要寫入的文件不存在,函數open()將自動創建它。然而,以寫入('w')模式打開文件時千萬要小心,因為如果指定的文件已經存在,Python

將在返回文件對象前清空該文件。所以使用寫入模式('w')的時候一定要小心。

 

 

   

 

   


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM