NumPy savetxt/loadtxt 编码是不必要的?

NumPy savetxt/loadtxt encoding unnecessary?

提问人:jmd_dk 提问时间:3/15/2023 更新时间:3/15/2023 访问量:87

问:

我使用 NumPy 的 savetxt() 和 loadtxt() 在磁盘上写入和读取数据。我有时会在可选标题中使用非 ASCII 字符(例如希腊语),如

import numpy as np
np.savetxt('test.txt', [0], header='σ')
np.loadtxt('test.txt')

这工作正常。生成的文件如下所示test.txt

# σ
0.000000000000000000e+00

savetxt() 和 loadtxt() 都有一个可选参数,默认为 ,据我所知,它不能表示希腊字符。encodingsavetxt()'latin1'

问题:尽管假定使用了 ?我是否应该开始指定 和 ,只是为了确定?'latin1'encoding='utf-8'savetxt()loadtxt()

注意:在旧版本的 NumPy 中,无法使用 和 使用非 ASCII 字符。在写这篇文章时,我发现了一个关于处理这个限制的老问题savetxt()loadtxt()

python-3.x numpy 编码 utf-8

评论

0赞 Giacomo Catenazzi 3/15/2023
我在 savetxt 上遇到错误(字符不可编码)。但是查看代码,在旧版本中可能有一些魔力(因为 python 2 和 3 之间的字符串语义发生了变化)
0赞 jmd_dk 3/15/2023
@GiacomoCatenazzi 您使用的是 Python 3 和最新版本的 NumPy 吗?
0赞 JosefZ 3/15/2023
np.savetxt在我的 -> 中使用编码(使用实用程序测试)。Python 3.11.2 在 Windows 10 上使用 -> .utf-8np.__version__'1.24.2'hexdumplocale.getencoding()'cp65001'
0赞 jmd_dk 3/15/2023
@JosefZ 看起来很合理,对吧?除非医生另有说明......
0赞 Giacomo Catenazzi 3/15/2023
Numpy '1.24.2',python 3.11.,但我的 savetxt 不使用 utf-8 作为默认值(与 @JosefZ 不同) -- 如果您使用文件名,默认编码是系统默认值(所以 Windows 上的 latin1/cp1252),如果您使用处理程序,默认值将是 latin1(作为后备,例如字节流)或处理程序的编码)

答: 暂无答案