python - 如何在 Python 3 中切换文本和二进制写入模式?

标签 python python-3.x numpy io

我最近切换到 Python 3。在我的代码中,我有一个 numpy 另存为文本命令

f_handle = open('results.log','a')
f_handle.write('Some text')
numpy.savetxt(f_handle, X, delimiter=',', fmt='%.4f') 

在 Python 3 中,这会导致 numpy 命令出错,标志需要为“ab”,即以二进制形式写入。现在,我将多个写入语句混合在一起,因此为了调用 Numpy 命令,我必须执行类似的操作,

f_handle = open('results.log','a')
f_handle.write('Some text...')
f_handle.close()

f_handle = open('results.log','ab')
numpy.savetxt(f_handle, X, delimiter=',', fmt='%.4f') 
f_handle.close()

f_handle = open('results.log','a')
f_handle.write('Some more text...')

这似乎是一种非常低效的做事方式,尤其是当你写很多东西的时候。那我该怎么办呢?

最佳答案

您可以在写入之前对文本进行编码:

with open('results.log','ab') as f_handle:
    f_handle.write('Some text...'.encode('utf-8'))

关于python - 如何在 Python 3 中切换文本和二进制写入模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37467358/

相关文章:

python - 在Python中同时读取stdin并写入stdout

python,添加并覆盖列表中的值

python - 独立运行 async while 循环

python - 在主脚本之外使用 python 多进程

python - 如何将多个 NumPy 数组输入 Keras 中的深度学习网络?

python - 如何在单个子图中绘制数字列表?

python - 当表列更改时如何更新 orm+python 中的数据库字段?

python - 使用 OrderedDict 进行 SQLAlchemy 关系()?

python - 相当于 MATLAB 稀疏函数的 numpy/scipy

python - 从 numpy 中的二维图像中提取特征向量