美好的一天。需要帮助。使用的语言是python。下面的代码从文本文件中读取,然后在新行上返回每个单词的频率。我是从这个网站https://rmtheis.wordpress.com/2012/09/26/count-word-frequency-with-python/
得到的 <select class="form-control" />
从上面看,它使用(pyCharm)在IDE上打印得很好。但是,当我在上面的代码下面添加以下代码时,
import re
from collections import Counter
def openfile(filename):
fh = open(filename, "r+")
str = fh.read()
fh.close()
return str
def removegarbage(str):
# Replace one or more non-word (non-alphanumeric) chars with a space
str = re.sub(r'\W+', ' ', str)
str = str.lower()
return str
def getwordbins(words):
cnt = Counter()
for word in words:
cnt[word] += 1
return cnt
def main(filename, topwords):
txt = openfile(filename)
txt = removegarbage(txt)
words = txt.split(' ')
bins = getwordbins(words)
for key, value in bins.most_common(topwords):
print(key, value)
main('hamlet.txt', 500)
它确实打印在控制台上,但是显示了一些错误,还有没有写入文本文件我根本创建了。 .Below是一个片段,在读取文本文件后显示控制台上的示例输出,它打印:
#Write to file
with open("newFile.txt", "w") as f:
for word in main('hamlet.txt', 500):
f.write(word + os.linesep)
所以现在,我想将上面的输出写入文本文件。虽然纺织品的内容比上面的长得多。谢谢。顺便说一下,控制台上出现的错误是
the 16
of 12
to 9
search 9
which 6
答案 0 :(得分:0)
如果你想使用如图所示的函数$client = static::createClient();
$client->request('POST', '/ajax/blahblah', array('data' => 'fruityloops'));
$response = $client->getResponse();
$this->assertEquals(200, $response->getStatusCode());
//convert to array
$data = json_decode($response->getContent(true), true);
var_dump($data);
$this->assertArrayHasKey('your_key', $data);
,即
main
然后该功能应该适应这一点。 可以使用例如发电机:
for word in main('hamlet.txt', 500):
答案 1 :(得分:0)
您需要return key, value
而不是打印