计算文件中的单词

时间:2013-12-30 12:17:13

标签: python file filenames

我正在尝试编写一个函数来计算文件中的单词数。但由于某种原因,当我运行它时会发生错误:

def wc(filename):
    """returns the number of words in file filename."""
    f = open(filename, 'r')
    lines = f.readlines()
    f.close()
    total = 0
    for line in lines:
        words = line.split()
        n = len(words)
        total = total + int(n)
    return total

错误说文件名未定义。

文件名为alice。当我在右下角的控制台中输入wc(alice.txt)时,它会返回:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'alice' is not defined

我已将文件与Python文件一起保存在USB驱动器上。

2 个答案:

答案 0 :(得分:2)

我认为问题在于你如何调用这个函数。如果您使用:

wc(alice.txt)

您可能会收到错误,因为alice.txt告诉python在当前环境中查找名为alice的对象,然后尝试在其上查找txt属性。如果不存在这样的对象或属性,则会出现错误。

您要做的是将alice.txt作为字符串传递给您的函数。为此,您需要将其放在引号中:

wc("alice.txt")

答案 1 :(得分:0)

def wc(filename):
    ## Your stuff here

functionone arguement,即filename 因此,您需要将filename传递给此函数 以及relativeabsolute path

假设您的文件名是test_input.txt,并且该文件名是最新的 工作目录,

print wc('test_input.txt')

如果您的文件不在当前工作目录中

print wc('/path/to/your/file/test_input.txt')