python write可以带2个参数

时间:2012-07-01 07:18:55

标签: python arguments

我有一个问题要做一个“output.txt”。 我想将word和prob(l.19)结果写入 一个“output.txt”文件。 当我写“model_file.write(word,prob)”时,终端骂我 “TypeError:function只需1个参数(2个给定)”消息。 我试图添加更多的参数,但它没有工作.. 有人可以帮我解决问题吗?

这是一个词COUNT.PY
total_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()

3 个答案:

答案 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语句之外指定wordprob。或者它会导致另一个错误。

答案 1 :(得分:1)

您可以使用print语句执行此操作:

print >>model_file, word, prob

答案 2 :(得分:0)

我想创建一种关于我的 df 的描述,所以我写了这个:

nuget_version=$(yum info nuget | grep Version | sed 's/^.*: //')