写入文本文件程序:从 Python 2 转换为 Python 3

Writing to a text file program: convert from Python 2 to Python 3

我想从 Py2 转换它:

with open(path, "wb") as f1:
        for i in w_vectors:
            print >>f1, i, " ".join(map(str, numpy.round(w_vectors[i], decimals=6))) 

到 Py3:

with open(path, "wb") as f1:
        for i in w_vectors:
            print (f1, i, " ".join(map(str, numpy.round(w_vectors[i], decimals=6))))
    
f1.close()

但它没有保存到文本文件。我做错了什么?

对于 Python 2,您可以使用 print 来写入文件,但在 Python 3 中,您可以使用以下方法:

with open(path, "wb") as f1:
    for i in w_vectors:
        f1.write(i, " ".join(map(str, numpy.round(w_vectors[i], decimals=6))))

并且在使用“with”时不必使用f1.close,因为“with”会自行处理。

在Python中使用file关键字参数来print 3.

print(i, " ".join(...), file=f1)