使用Python计算每行在文本文件中有多少个单词(使用str.split)

时间:2016-11-13 10:58:12

标签: python python-3.x

我有两个文件,一个用于输入,是“our_input.txt”(与代码文件相同的目录),这是Oscar Wild的Dorian Gray。无论如何,还有一个输出文件,我需要打开原始文件,让Python计算每行有多少个单词,并在输出中写入。

我试过了,但我迷路了......

3 个答案:

答案 0 :(得分:1)

你可以尝试这样的事情。

首先阅读输入文件:

with open('our_input.txt') as f:
    lines = f.readlines()

然后计算每行的单词数并写入输出文件:

with open('our_output.txt', 'w') as f:
    for index, value in enumerate(lines):
        number_of_words = len(value.split())        
        f.write('Line number {} has {} words.\n'.format(index + 1, number_of_words))

答案 1 :(得分:0)

您需要迭代输入文本文件的每一行。这是通过标准for循环完成的。 您可以在每个空格char之后拆分每一行,并使用len()计算列表中的元素数。您将此附加到输出文件,您已完成

答案 2 :(得分:0)

用于文件中字数统计的任何语言的简单技术是:

  1. 将文件读入变量。
  2. 使用空格字符替换不必要的字符,例如回车符或换行符。从字符串的开头和结尾修剪空格字符。
  3. 用单个替换多个空格字符。
  4. 我们现在有一个字符串,单词空格分隔。

    现在要么

    • 使用语言的split函数和space作为分隔符,以生成数组。字数是数组长度,根据使用的语言调整为数组的下限为零或1。

    • 如果语言具有count-character-of-specified-type函数,则使用该函数计算字符串中的空格数。添加1.这是单词数。

    正在处理的文件的大小可能会使处理器的工作量很大,性能将取决于语言处理字符串和数组的方式。

    如果您正在使用客户端 - 服务器或文本存储在数据库中,请考虑移动字符串的高网络成本。最好将计数尽可能靠近数据位置运行。因此,如果使用RDBMS,则使用存储过程 - 更快地计算2Gb字符串中的单词,并将带有答案的int变量发送到客户端,而不是发送2Gb字符串并在Web浏览器中计数。

    如果您无法一次读取整个文件,那么您可以逐行阅读并按行执行上述技术。但是,由于字符串处理和循环运行开销,如果您可以将整个文件作为一个字符串处理,性能会更快。