1

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

这是一个字数.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()
#
4

3 回答 3

3

只需简单更换

model_file.write(word, prob)

model_file.write(word+' '+str(prob)+'\n')


请注意,该方法write()被实现为只接受一个字符串参数,因此您必须将其转换prob为字符串(通过方法str()),然后将其与word字符串运算符组合+,这样您就只有一个字符串参数。


PS:虽然你没有问这个,但我不得不说,如果你要写每个单词及其概率,你应该把它放在model_file.write(word+' '+str(prob)+'\n') 语句for。否则,如果您出于某种目的拒绝在语句之外调用它,那么您也应该在语句之外进行for赋值。否则会导致另一个错误。wordprobfor

于 2012-07-01T09:16:46.710 回答
1

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

print >>model_file, word, prob
于 2012-07-01T07:34:00.927 回答
0

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

# Create an empty txt
f = open(os.path.join(pathlib.Path().absolute(),'folder','florder','name.txt'), "a")

# Create an kind of header
f.write('text'+'\n')
f.write('text'+'\n')
f.write("""
-------------------
""")
f.write('text:'+ '\n')
f.write("""
""")


for c in range(0, len(df.columns)):
        campo = df.columns[c]
        if df[df.columns[c]].dtype== 'object':
            text= 'Tex'
        outfile = open('name.txt','w')
        f.write('str:'+"'"+str(xxx)+"'"'\n')
        f.write('str:'+ str(str)+'\n')
        f.write('\n')
f.close()
于 2021-05-20T22:26:35.707 回答