Python运行时错误计算文件中的单词

时间:2016-01-02 17:20:54

标签: python file runtime-error word-count

在面对语法错误一段时间并且意识到我犯了一个愚蠢的错误后,我继续纠正我的方式只是遇到运行时错误。到目前为止,我试图制作一个能够从文件中读取单词数量的程序,但是,不是计算单词的数量,程序似乎计算了对结果不利的字母数量。我的节目。请在下面找到相应的代码。感谢您的所有贡献!

def GameStage02():
global FileSelection                                                                                                                                                                           
global ReadFile
global WordCount
global WrdCount
FileSelection = filedialog.askopenfilename(filetypes=(("*.txt files", ".txt"),("*.txt files", "")))
with open(FileSelection, 'r') as file:
    ReadFile = file.read()
SelectTextLabel.destroy()                                                                                                                                             
WrdCount=0
for line in ReadFile:
    Words=line.split()
    WrdCount=WrdCount+len(Words)
    print(WrdCount)
GameStage01Button.config(state=NORMAL)

2 个答案:

答案 0 :(得分:2)

让我们分解一下:

ReadFile = file.read()会给你一个字符串。

for line in ReadFile将迭代该字符串中的字符。

Words=line.split()将为您提供一个包含一个或零个字符的列表。

这可能不是你想要的。变化

ReadFile = file.read()

ReadFile = file.readlines()

这将为您提供一个行列表,您可以将这些行重复和/或split转换为单词列表。

另外,请注意file不是一个好的变量名(在Python2中),因为它已经是内置的名称。

答案 1 :(得分:0)

作为timgeb's answer的延续,这是一段执行此操作的代码:

import re
#open file.txt, read and 
#split the file content with \n character as the delimiter(basically as lines)
lines = open('file.txt').read().splitlines() 
count = 0
for line in lines:
  #split the line with whitespace delimiter and get the list of words in the line
  words = re.split(r'\s', line) 
  count += len(words)
print count