在 Python 中獲取檔案的行數
-
在 Python 中使用
open()
和sum()
函式獲取檔案中的行數 -
在 Python 中使用
mmap.mmap()
方法獲取檔案中的行數 -
在 Python 中使用
file.read()
方法獲取檔案中的行數
本教程將演示用 Python 獲取檔案中總行數的各種方法。為了獲得檔案的總行數,我們首先需要讀取緩衝區中的檔案資料,我們可以通過一次性載入完整的檔案或者在檔案大小較大的情況下分小塊讀取資料來實現。
我們將看看如何使用 Python 中的各種方法來實現這兩種方法,下面將用示例程式碼來解釋。
在 Python 中使用 open()
和 sum()
函式獲取檔案中的行數
獲取檔案行數的一個簡單方法是通過遍歷 open()
函式返回的檔案物件的每一行。
open(file, mode)
函式以 file
作為輸入,並返回一個檔案物件作為輸出。file
是一個類似路徑的物件,可以是字串或位元組物件,包含檔案路徑。mode
代表我們要開啟檔案的模式,如讀、寫、追加模式等。
下面的示例程式碼演示瞭如何在 Python 中使用 for
迴圈來獲取檔案中的行數。
with open('myFolder/myfile.txt') as myfile:
total_lines = sum(1 for line in myfile)
print(total_lines)
在 Python 中使用 mmap.mmap()
方法獲取檔案中的行數
mmap.mmap(fileno, length)
方法從 fileno
指定的檔案中對映 length
位元組數,並返回 mmap
物件。如果 length
的值是 0
,對映的最大長度將等於檔案大小。
我們可以使用 mmap.mmap()
方法返回的 mmap
物件,然後使用 mm.readline()
方法訪問行,直到到達檔案的末端。由於我們要載入完整的檔案,我們將傳遞 0
作為 length
引數。
示例程式碼:
import mmap
with open('myFolder/myfile.txt', "r+") as myfile:
mm = mmap.mmap(myfile.fileno(), 0)
total_lines = 0
while mm.readline():
total_lines += 1
print(total_lines)
在 Python 中使用 file.read()
方法獲取檔案中的行數
如果檔案的大小很大,我們需要一種快速的方法來讀取小塊的檔案,我們可以使用 file.read()
方法將資料以位元組陣列的形式讀取到一個指定大小的緩衝區中。
下面的示例程式碼演示瞭如何使用 file.read()
方法將檔案資料讀入緩衝區,然後遍歷得到行數。
lines = 0
size = 1024 * 1024
with open(r'C:\test\file.txt', "r+") as myfile:
read_file = myfile.read
buffer = read_file(size)
while buffer:
lines += buffer.count('\n')
buffer = read_file(size)
if (lines != 0):
lines += 1
print(lines)
Syed Moiz is an experienced and versatile technical content creator. He is a computer scientist by profession. Having a sound grip on technical areas of programming languages, he is actively contributing to solving programming problems and training fledglings.
LinkedIn