我有一个问题要做一个“output.txt”。 我想将word和prob(l.19)结果写入 一个“output.txt”文件。 当我写“model_file.write(word,prob)”时,终端骂我 “TypeError:function只需1个参数(2个给定)”消息。 我试图添加更多的参数,但它没有工作.. 有人可以帮我解决问题吗?
这是一个词COUNT.PYtotal_count = 0
train_file = open(sys.argv[1],"r")
for line in train_file:
words = line.strip().split(" ")
words.append("</s>")
for word in words:t
counts[word] = counts.get(word, 0) + 1
total_count = total_count + 1
model_file = open('output.txt',"w")
for word, count in sorted(counts.items(),reverse=True):
prob = counts[word]*1.0/total_count
print "%s --> %f" % (word, prob)
model_file.write(word, prob)
model_file.close()
#
答案 0 :(得分:2)
只需简单地替换
model_file.write(word, prob)
带
model_file.write(word+' '+str(prob)+'\n')
请注意,方法write()
已实现为仅使用一个字符串参数,因此您必须将prob
转换为字符串(通过方法{{1} })然后用字符串运算符str()
将它与word
结合起来,这样你就只得到一个字符串参数。
PS:虽然你没有问这个,但我必须说,如果你要写每个单词及其概率,你应该将+
放入model_file.write(word+' '+str(prob)+'\n')
语句< / strong>即可。否则,如果您出于某种目的拒绝在for
语句之外调用它,那么您也应该在for
语句之外指定word
和prob
。或者它会导致另一个错误。
答案 1 :(得分:1)
您可以使用print
语句执行此操作:
print >>model_file, word, prob
答案 2 :(得分:0)
我想创建一种关于我的 df 的描述,所以我写了这个:
nuget_version=$(yum info nuget | grep Version | sed 's/^.*: //')