首页 > 解决方案 > 使用 numpy python 加载文件时出错

问题描述

我有许多包含整数的文本文件存在于目录中/home/gkl/file/*.rtd.2_file_*.txt_*

我只想使用 numpy 加载,但出现错误

import numpy as np
import glob
import os

files = [os.path.basename(x) for x in glob.glob("/home/gkl/file/*.rtd.2_file_*.txt_*")]
print(files)
inpdata=np.loadtxt(names)
print(inpdata)

我收到错误 ValueError:无法将字符串转换为浮点数:'mst.rtd.2_file_345.txt_1'

之后我尝试了

import numpy as np
import glob
import os

files = [os.path.basename(x) for x in glob.glob("/home/gkl/file/*.rtd.2_file_*.txt_*")]
print(files)
inpdata=np.loadtxt(float(names))
print(inpdata)

我仍然收到错误

inpdata=np.loadtxt(float(names))
TypeError: float() argument must be a string or a number, not 'list'

我需要专家帮助

标签: pythonnumpy

解决方案


问题是您有一个文件名列表,但np.loadtxt需要一个文件或文件名。所以你基本上必须调用loadtxt一个for循环:

import numpy as np
import glob
import os

files = [os.path.basename(x) for x in glob.glob("/home/gkl/file/*.rtd.2_file_*.txt_*")]
print(files)
inpdata = [np.loadtxt(file) for file in files]
print(inpdata)

如果这仍然不起作用,我需要查看文件中的内容以进一步调试。


推荐阅读