0

所以我需要编写一个程序,要求我输入文件名,然后输入任何单词,它会输出一个单独的文本文件中有多少单词。

这是我到目前为止所拥有的:

fname= raw_input("Enter File Name: ")
s= raw_input("enter substring: ")

with open(fname, 'r') as f:
4

3 回答 3

0
// read the file into a list
// split each line into words
// compare each word with the desired word and count
import string
fname = raw_input("Enter File Name: ")
s     = raw_input("enter substring: ")
fp    = open(fname, 'rt')
L     = fp.readlines()    # read all lines into a list "L"
c     = 0                 # word count
for i in L:
    arr = string.split(i) # split on whitespace
    for word in arr:
        if word == s:
            c += 1
print "There are %d occurrances of the word \"%s\" in file \"%s\"\n" % (c, s, fname)
于 2012-10-15T06:48:19.733 回答
0

还有一行:

print f.read().count(s)
于 2012-10-15T06:22:34.413 回答
0

到目前为止,您拥有的是一个良好的开端。事实上,如果我自己解决问题,这几乎正是我会开始的。由于这可能是一项家庭作业,因此我不会为您编写代码,但希望我可以为您指明下一步该做什么。

首先,您需要将文件读入一个可以搜索的字符串。可能你会想用它f.read()来一次得到这一切。您也可以一次处理一行,但我认为如果您的搜索字符串跨越多个行,这将不起作用。

您可能需要在搜索之前对字符串进行一些“清理”(例如,正则化空格、大写、标点符号等)。您需要多少可能取决于您的文件内容究竟是什么,以及您希望搜索工作的紧密程度。如果您搜索“生病”,您希望它匹配“我会”吗?“连字符”匹配“连字符-\ 命名”怎么样(如果您的文本文件有连字符在两行之间分隔单词)?

获得清理后的字符串后,您必须决定如何搜索子字符串。您可以使用str类的方法(例如findcount),也可以使用类似的模块re进行更高级的文本搜索。阅读文档并选择最适合您的。

于 2012-10-15T06:22:57.127 回答