Python中如何准确读取文本文件并还原numpy数组?
解决读取txt文件得到字符串而非numpy数组的问题
你的代码读取文件后得到的是按行拆分的字符串列表,而非实际的numpy数组对象。可以通过以下方式修正:
修正后的代码
import numpy as np with open('Test.txt') as f: # 将所有行的字符串拼接成完整的表达式字符串,移除换行符 full_content = ''.join(line.rstrip('\n') for line in f.readlines()) # 执行字符串表达式,还原numpy数组 A = eval(full_content) print(A)
代码说明
''.join(line.rstrip('\n') for line in f.readlines()):把文件中每行的字符串拼接成一个完整的、符合Python语法的表达式字符串,同时去掉每行末尾的换行符,避免语法错误。eval(full_content):执行拼接后的字符串表达式,将其转换为实际的numpy数组对象。因为你的txt文件中存储的本身就是numpy数组的构造代码字符串,eval可以直接解析并生成对应的对象。
注意事项
- 使用
eval存在安全风险,仅当你完全信任Test.txt文件的内容时使用,避免执行恶意代码。 - 如果txt文件仅存储纯数值数据,推荐使用
np.loadtxt()或np.genfromtxt()这类更安全的numpy读取函数,但你的场景中文件存储的是数组的字符串表示,eval是最直接的适配方案。
内容的提问来源于stack exchange,提问作者user19862793
相关产品推荐
相关产品推荐

