Python程式用於統計文字檔案中的母音、行數和字元數


在處理文字處理和分析任務時,經常需要統計文字檔案中的母音、行數和字元數。目標是確定檔案中存在的母音、行數和字元的總數。Python提供了各種方法和技術,可以有效且高效地完成這些計數任務。

在本文中,我們將討論使用Python程式設計在文字檔案中統計母音、行數和字元的不同方法。

方法

透過遵循以下步驟,我們可以使用Python有效地統計文字檔案中的母音、行數和字元。

  • 開啟文字檔案

  • 初始化計數器

  • 讀取檔案:遍歷檔案內容,可以一次讀取整個檔案或逐行讀取。

    • 一次讀取整個檔案:使用read()方法將檔案的全部內容作為單個字串讀取。

    • 逐行讀取檔案:使用for迴圈遍歷檔案中的每一行。檔案物件本身可以直接迭代。

  • 統計母音:對於每一行或整個文字,統計母音出現的次數。您可以使用count()等方法或正則表示式來查詢母音,並相應地遞增母音計數。

  • 統計行數:對於讀取的每一行,遞增行數。

  • 統計字元數:根據每一行的長度或整個文字的長度遞增字元數。

  • 最後,關閉檔案。

在本文中,我們將使用以下文字檔案作為輸入。

一次讀取整個檔案

在這裡,使用檔案物件的read()方法讀取檔案的全部內容。然後使用count()方法統計文字中每個母音出現的次數,並將所有母音的計數加起來。相同的方法用於統計換行符(\n)的數量。字元總數透過計算整個文字字串的長度來確定。

示例

這是一個示例,統計文字檔案中的母音、行數和字元數。

def count_vowels_lines_chars(filename):
    with open(filename, 'r') as file:
        data = file.read()
        vowel_count = sum(data.count(vowel) for vowel in 'aeiouAEIOU')
        line_count = data.count('\n')
        char_count = len(data)

    return vowel_count, line_count, char_count

# Provide the path of the text file
filename = 'sample_document.txt'  

# Call the function to count vowels lines and characters
vowels, lines, characters = count_vowels_lines_chars(filename)

print("Vowels: {}".format(vowels))
print("Lines: {}".format(lines))
print("Characters: {}".format(characters))

輸出

Vowels: 98
Lines: 3
Characters: 311

使用for迴圈

此方法涉及使用for迴圈逐行讀取檔案。對於每一行,使用count()方法統計該行中母音出現的次數。將所有行的計數累加起來。迴圈的每次迭代都會遞增行數。字元總數透過將每一行的長度加起來來確定。

示例

它的工作原理與前面的示例類似,但在這裡我們將使用for迴圈逐行讀取檔案。

def count_vowels_lines_chars(filename):
    vowel_count = 0
    line_count = 0
    char_count = 0

    with open(filename, 'r') as file:
        for line in file:
            vowel_count += sum(line.count(vowel) for vowel in 'aeiouAEIOU')
            line_count += 1
            char_count += len(line)

    return vowel_count, line_count, char_count

# Provide the path of the text file
filename = 'sample_document.txt'  

# Call the function to count vowels lines and characters
vowels, lines, characters = count_vowels_lines_chars(filename)

print("Vowels: {}".format(vowels))
print("Lines: {}".format(lines))
print("Characters: {}".format(characters))

輸出

Vowels: 98
Lines: 3
Characters: 311

使用正則表示式

在此方法中,使用re.findall()函式使用正則表示式模式[aeiouAEIOU]查詢每一行中所有母音出現的次數。然後使用返回的匹配列表來確定該行中母音的計數。將所有行的計數累加起來。迴圈的每次迭代都會遞增行數。字元總數透過將每一行的長度加起來來確定。

示例

這是一個使用Python中正則表示式在指定文字檔案中統計母音、行數和字元的示例。

import re

def count_vowels_lines_chars(filename):
    vowel_count = 0
    line_count = 0
    char_count = 0

    with open(filename, 'r') as file:
        for line in file:
            vowel_count += len(re.findall(r'[aeiouAEIOU]', line))
            line_count += 1
            char_count += len(line)

    return vowel_count, line_count, char_count


# Provide the path of the text file
filename = 'sample_document.txt'  

# Call the function to count vowels lines and characters
vowels, lines, characters = count_vowels_lines_chars(filename)

print("Vowels: {}".format(vowels))
print("Lines: {}".format(lines))
print("Characters: {}".format(characters))

輸出

Vowels: 98
Lines: 3
Characters: 311

更新於: 2023年8月29日

3K+瀏覽量

啟動您的 職業生涯

透過完成課程獲得認證

開始學習
廣告