所以我需要编写一个程序,要求我输入一个文件名,然后输入任何单词,它会给我一个单独的文本文件中有多少单词的输出。
这是我到目前为止所拥有的:
fname= raw_input("Enter File Name: ")
s= raw_input("enter substring: ")
with open(fname, 'r') as f:
答案 0 :(得分:0)
还有一行:
print f.read().count(s)
答案 1 :(得分:0)
到目前为止你所拥有的是一个良好的开端。事实上,如果我自己解决问题,它几乎就是我的开始。由于这可能是一项家庭作业,我不打算为你编写代码,但希望我能指出你下一步该做什么。
首先,您要将文件读入可以搜索的字符串中。您可能希望使用f.read()
一次性完成所有操作。您也可以一次处理一行,但我认为如果您的搜索字符串跨越多行,则无效。
您可能需要做一些"清洁"搜索之前的字符串(例如,规则化空格,大写,标点符号等)。您需要多少可能取决于您的文件的确切内容,以及您希望搜索的工作紧密程度。如果你搜索"生病"你希望它匹配"我' l"?如何"连字符"匹配"连字符" (如果你的文本文件在两行之间有连字符分隔词?)
获得清理过的字符串后,您必须决定如何搜索子字符串。您可以使用str
类的方法(例如find
或count
),也可以使用re
这样的模块进行更高级的文本搜索。阅读文档并选择最适合您的文档。
答案 2 :(得分: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)