检查文本文件python

时间:2015-10-12 04:32:06

标签: file python-3.x

我需要计算给我的文本文件中的元音数量(使用python程序)并返回数字。无论出于何种原因,当我运行程序时,文件返回0个元音,即使每次循环并找到元音时count变量应该增加1。

def numVowels(file):
    count = 0
    opened_file = open(file)
    content = opened_file.readlines()
    for char in content:
        if char.lower() in 'aeiou':
            count += 1
    return(count)

我不确定这是因为我正在使用文本文件,但通常我能够毫无问题地执行此操作。非常感谢任何帮助。

谢谢!

1 个答案:

答案 0 :(得分:0)

readlines()会返回文件中的行列表,因此for char in content:表示char是文件中的一行文字,不是您要查找的内容。
您可以read()将整个文件存入内存或逐行遍历文件,然后在时间遍历行字符:

def numVowels(file):
    count = 0
    with open(file) as opened_file:
        for content in opened_file:
            for char in content:
                if char.lower() in 'aeiou':
                    count += 1
    return count

您可以将1的生成器相加以生成相同的值:

def numVowels(file):
    with open(file) as f:
        return sum(1 for content in f for char in content if char.lower() in 'aeiou')