1. <th id="d83bz"></th>
      2. 您所在位置:主頁 > 職業教育 > IT培訓 > python培訓 >

        如何在 Python 中讀取大文本文件

        時間:2022-03-23發布于:教育培訓網發布人:百學培訓瀏覽:0

        如何在 Python 中讀取大文本文件

          Python 是一種開源的動態類型和解釋型編程語言。讀寫文件是編程的一個組成部分。在 Python 中,使用 readlines() 方法讀取文件。readlines() 方法返回一個列表,其中列表中的每一項都是文件中的一個完整句子。當文件較小時,此方法很有用。由于 readlines() 方法將每一行附加到列表中,然后返回整個列表,如果文件大小非常大,比如以 GB 為單位,這將非常耗時。此外,該列表將消耗大量內存,如果沒有足夠的內存,可能會導致內存泄漏。為了避免這個問題,我們可以使用文件對象作為迭代器來迭代文件并執行所需的任務。由于迭代器只是對整個文件進行迭代,不需要任何額外的數據結構來存儲數據,因此消耗的內存相對較少。此外,迭代器不會執行像追加這樣的昂貴操作,因此它也很省時。文件在 Python 中是可迭代的,因此建議使用迭代器。

          以下兩個程序演示了如何使用 Python 讀取大型文本文件。

          方法一:

          第一種方法使用迭代器來迭代文件。在這項技術中,我們使用 Python 中的 fileinput 模塊。fileinput 模塊的 input() 方法可用于讀取文件。使用此方法優于 readlines() 的優點是 fileinput.input() 不會將整個文件加載到內存中。因此,沒有內存泄漏的可能性。fileinput.input() 方法接受一個文件名列表,如果沒有傳遞參數,它接受來自標準輸入的輸入。該方法返回一個迭代器,該迭代器返回正在掃描的文本文件中的各個行。

          # import module

          import fileinput

          import time

          #time at the start of program is noted

          start = time.time()

          #keeps a track of number of lines in the file

          count = 0

          for lines in fileinput.input(['sample.txt']):

          print(lines)

          count = count + 1

          #time at the end of program execution is noted

          end = time.time()

          #total time taken to print the file

          print("Execution time in seconds: ",(end - start))

          print("No. of lines printed: ",count)

          解釋:

          input() 方法返回一個迭代器,它掃描整個文件并打印每一行。

          方法二:

          第二種方法也使用迭代器來讀取文件。唯一的區別是我們將使用文件對象的迭代器。使用的方法是 open() 將整個文件包裝成一個文件對象。接下來,我們使用迭代器來獲取文件對象中的行。我們在“with”塊中打開文件,因為它會在整個塊執行后自動關閉文件。隨著 with 塊完成,exit() 方法被調用,該方法釋放所有打開的資源。

          import time

          start = time.time()

          count = 0

          with open("sample.txt") as file:

          for line in file:

          print(line)

          count = count + 1

          end = time.time()

          print("Execution time in seconds: ",(end-start))

          print("No of lines printed: ",count)

          這種方法所需的時間相對較少。該程序也可以在沒有塊的情況下編寫,但在這種情況下,我們必須確保明確關閉文件資源。

          聲明:

          本站(www.rxbbx.com)部分圖文轉自網絡,刊登本文僅為傳播信息之用,絕不代表贊同其觀點或擔保其真實性。若有來源標注錯誤或侵犯了您的合法權益,請作者持權屬證明與本網聯系,我們將及時更正、刪除,謝謝

        熱點推薦

        推薦圖文

        熱點標簽

        强奸到高潮视频

          1. <th id="d83bz"></th>