Python读取txt单行逗号分隔数值生成指定格式np.array的方法
问题说明
现有一个仅存储单行内容的txt文件,内容会不定期被覆盖,当前文件内存储的实际值为:
5,7,1,1,6,7,27
需求为读取该*.txt文件的内容,存入np.array对象,最终得到的数组结构需为:
new = np.array([[5,7,1,1,6,7,27]])
当前编写的待修正实现代码如下:
import numpy as np from pathlib import Path txt = Path('c:\MyFolder\myValue.txt').read_text() new = np.array([[txt]])
修正方案
原代码的问题是直接将读取到的完整字符串作为数组元素,没有做拆分、类型转换,同时Windows路径未处理转义字符。按以下逻辑修正即可:
- 路径字符串前加
r标记为原始字符串,避免反斜杠被识别为转义符 - 读取文本后调用
strip()去掉首尾的换行、空白字符 - 按英文逗号拆分字符串,将拆分后的每个子串转为对应数值类型
- 转换为numpy数组时外层包一层列表,即可得到二维的
[[...]]结构
修正后可运行代码:
import numpy as np from pathlib import Path # 读取并解析文本内容 txt = Path(r'c:\MyFolder\myValue.txt').read_text().strip() num_list = [int(item) for item in txt.split(',')] # 生成目标结构的numpy数组 new = np.array([num_list])
运行后new的输出为array([[ 5, 7, 1, 1, 6, 7, 27]]),完全匹配预期结构。如果文件内后续存储的是浮点数,将代码中int替换为float即可。
内容的提问来源于stack exchange,提问作者faraho
相关产品推荐
相关产品推荐

